mirror of
https://github.com/moparisthebest/JdbcMapper
synced 2024-11-25 02:12:22 -05:00
JdbcMapperProcessor considers anything implementing Bindable a shortcut for {sql:}
This commit is contained in:
parent
e47ec84325
commit
1766a9af6d
@ -400,8 +400,17 @@ public class JdbcMapperProcessor extends AbstractProcessor {
|
|||||||
final String inColumnName = bindParamMatcher.group(2);
|
final String inColumnName = bindParamMatcher.group(2);
|
||||||
if (inColumnName == null) {
|
if (inColumnName == null) {
|
||||||
if(clobBlobSql == null){
|
if(clobBlobSql == null){
|
||||||
|
// shortcut for Bindable without sql:
|
||||||
|
if (types.isAssignable(bindParam.asType(), bindableType)) {
|
||||||
|
bindParamMatcher.appendReplacement(sb, "REPLACEMEWITHUNQUOTEDQUOTEPLZ + " + paramName + " + REPLACEMEWITHUNQUOTEDQUOTEPLZ");
|
||||||
|
final SpecialVariableElement sve = new SpecialVariableElement(bindParam, SQL, null);
|
||||||
|
bindParams.add(sve);
|
||||||
|
sqlParam = true;
|
||||||
|
sqlIterableParam |= sve.iterable || sve.bindable;
|
||||||
|
} else {
|
||||||
bindParamMatcher.appendReplacement(sb, "?");
|
bindParamMatcher.appendReplacement(sb, "?");
|
||||||
bindParams.add(bindParam);
|
bindParams.add(bindParam);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
final String upperClobBlobSql = clobBlobSql.toUpperCase();
|
final String upperClobBlobSql = clobBlobSql.toUpperCase();
|
||||||
String blobCharset = bindParamMatcher.group(6);
|
String blobCharset = bindParamMatcher.group(6);
|
||||||
@ -1051,7 +1060,7 @@ public class JdbcMapperProcessor extends AbstractProcessor {
|
|||||||
method = "Ref";
|
method = "Ref";
|
||||||
} else {
|
} else {
|
||||||
// shouldn't get here ever, if we do the types should be more specific
|
// shouldn't get here ever, if we do the types should be more specific
|
||||||
processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "@JdbcMapper.SQL could not properly infer PreparedStatement bind call for param", param);
|
processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "@JdbcMapper.SQL could not properly infer PreparedStatement bind call for param: " + variableName, param);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
w.write("ps.set");
|
w.write("ps.set");
|
||||||
|
@ -275,7 +275,8 @@ public interface QmDao extends JdbcMapper {
|
|||||||
@SQL("SELECT person_no FROM person WHERE person_no = {personNo1} {sql:sql} OR first_name = {firstName}")
|
@SQL("SELECT person_no FROM person WHERE person_no = {personNo1} {sql:sql} OR first_name = {firstName}")
|
||||||
List<Long> selectRandomSql(long personNo1, String sql, String firstName) throws SQLException;
|
List<Long> selectRandomSql(long personNo1, String sql, String firstName) throws SQLException;
|
||||||
|
|
||||||
@SQL("SELECT person_no FROM person WHERE person_no = {personNo1} {sql:sql} OR first_name = {firstName}")
|
// do not need sql: for anything extending Bindable
|
||||||
|
@SQL("SELECT person_no FROM person WHERE person_no = {personNo1} {sql} OR first_name = {firstName}")
|
||||||
List<Long> selectRandomSqlBuilder(long personNo1, Bindable sql, String firstName) throws SQLException;
|
List<Long> selectRandomSqlBuilder(long personNo1, Bindable sql, String firstName) throws SQLException;
|
||||||
|
|
||||||
// these we just check if they generated
|
// these we just check if they generated
|
||||||
|
Loading…
Reference in New Issue
Block a user