Skip to content

Commit dfd4ce0

Browse files
authored
Update ToSqlVisitor.java
- Add SQL string quotation for strings. Otherwise the SQL query is not valid. - Only make first letter of variable lowercase. `private String firstName;` will be called "firstName" on database, not "firstname". - Only replace method names that start with "get". Boolean getters have the same name as the private variable. For example the getter for `private boolean isUnderAge;` would be `public boolean isUnderAge();` and not `public boolean getIsUnderAge();`.
1 parent bc9df21 commit dfd4ce0

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/main/java/lambda2sql/ToSqlVisitor.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ public static String toSqlOp(int expressionType) {
3737

3838
@Override
3939
public StringBuilder visit(ConstantExpression e) {
40+
if (e.getValue() instanceof String) {
41+
return sb.append("'").append(e.getValue().toString()).append("'");
42+
}
4043
return sb.append(e.getValue().toString());
4144
}
4245

@@ -54,7 +57,8 @@ public StringBuilder visit(LambdaExpression<?> e) {
5457
@Override
5558
public StringBuilder visit(MemberExpression e) {
5659
String name = e.getMember().getName();
57-
name = name.replaceAll("^(get|is)", "").toLowerCase();
60+
name = name.replaceAll("^(get)", "")
61+
name = name.substring(0, 1).toLowerCase() + name.substring(1);
5862
return sb.append(name);
5963
}
6064

@@ -69,4 +73,4 @@ public StringBuilder visit(UnaryExpression e) {
6973
return e.getFirst().accept(this);
7074
}
7175

72-
}
76+
}

0 commit comments

Comments
 (0)