Skip to content

Commit d91ada5

Browse files
author
neilgrover
committed
Add ability to setDefaultAutoDerivedColumnNames at global level.
1 parent 01d3490 commit d91ada5

File tree

3 files changed

+31
-4
lines changed

3 files changed

+31
-4
lines changed

core/src/main/java/org/sql2o/Query.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ private Query(Connection connection, String queryText, boolean returnGeneratedKe
7676
this.columnNames = columnNames;
7777
this.setColumnMappings(connection.getSql2o().getDefaultColumnMappings());
7878
this.caseSensitive = connection.getSql2o().isDefaultCaseSensitive();
79+
this.autoDeriveColumnNames = connection.getSql2o().isDefaultAutoDeriveColumnNames();
7980

8081
paramNameToIdxMap = new HashMap<>();
8182
parameters = new HashMap<>();

core/src/main/java/org/sql2o/Sql2o.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public class Sql2o {
3030
final Quirks quirks;
3131
private Map<String, String> defaultColumnMappings;
3232
private boolean defaultCaseSensitive;
33+
private boolean defaultAutoDeriveColumnNames;
3334

3435
private ConnectionSource connectionSource;
3536

@@ -151,6 +152,24 @@ public void setDefaultCaseSensitive(boolean defaultCaseSensitive) {
151152
this.defaultCaseSensitive = defaultCaseSensitive;
152153
}
153154

155+
/**
156+
* Gets value indicating if this instance of Sql2o will automatically derive column names
157+
* @see #setDefaultAutoDeriveColumnNames
158+
* @return defaultAutoDeriveColumnNames
159+
*/
160+
public boolean isDefaultAutoDeriveColumnNames() {
161+
return defaultAutoDeriveColumnNames;
162+
}
163+
164+
/**
165+
* Sets a value indicating if this instance of Sql2o will auto derive column names by default. If your database uses
166+
* underscores in column names and your properties do not, then this will handle the conversion.
167+
* @param defaultAutoDeriveColumnNames
168+
*/
169+
public void setDefaultAutoDeriveColumnNames(boolean defaultAutoDeriveColumnNames) {
170+
this.defaultAutoDeriveColumnNames = defaultAutoDeriveColumnNames;
171+
}
172+
154173
/**
155174
* Creates a {@link Query}
156175
* @param query the sql query string

core/src/test/java/org/sql2o/Sql2oTest.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1364,14 +1364,21 @@ public void setAnotherVeryExcitingValue(String anotherVeryExcitingValue) {
13641364

13651365
assertNotNull(ex);
13661366

1367-
LocalPojo p = con.createQuery(selectSql)
1367+
LocalPojo localPojo1 = con.createQuery(selectSql)
13681368
.setAutoDeriveColumnNames(true)
13691369
.executeAndFetchFirst(LocalPojo.class);
13701370

1371-
assertNotNull(p);
1372-
assertEquals(1, p.getIdVal());
1373-
assertEquals("test1", p.getAnotherVeryExcitingValue());
1371+
assertNotNull(localPojo1);
1372+
assertEquals(1, localPojo1.getIdVal());
1373+
assertEquals("test1", localPojo1.getAnotherVeryExcitingValue());
13741374

1375+
sql2o.setDefaultAutoDeriveColumnNames(true);
1376+
LocalPojo localPojo2 = con.createQuery(selectSql)
1377+
.executeAndFetchFirst(LocalPojo.class);
1378+
1379+
assertNotNull(localPojo2);
1380+
assertEquals(1, localPojo2.getIdVal());
1381+
assertEquals("test1", localPojo2.getAnotherVeryExcitingValue());
13751382
}
13761383
}
13771384

0 commit comments

Comments
 (0)