@@ -63,16 +63,15 @@ protected void onConstructorBuilder(MethodSpec.Builder builder) {
63
63
}
64
64
65
65
@ Override
66
- public void addFindBy (QueryInfo queryInfo , MethodSpec .Builder spec , boolean async ) {
67
- var query = "select * from %s where %s"
68
- .formatted (queryInfo .tableName (), createWhereForSections (queryInfo .sections ()));
69
- addActionedData (spec , async , query , queryInfo .parameterNames (), "%s" , queryInfo ::columnFor , () -> {
66
+ public void addFindBy (QueryInfo info , MethodSpec .Builder spec , boolean async ) {
67
+ var query = "select * from %s where %s" .formatted (info .tableName (), createWhereFor (info ));
68
+ addActionedData (spec , async , query , info .parameterNames (), "%s" , info ::columnFor , () -> {
70
69
spec .beginControlFlow ("if (!result.next())" );
71
70
spec .addStatement ("return null" );
72
71
spec .endControlFlow ();
73
72
74
73
var arguments = new ArrayList <String >();
75
- for (ColumnInfo column : queryInfo .columns ()) {
74
+ for (ColumnInfo column : info .columns ()) {
76
75
var columnType = ClassName .bestGuess (column .typeName ().toString ());
77
76
spec .addStatement (
78
77
jdbcGetFor (column .typeName (), "$T _$L = result.%s(%s)" ),
@@ -83,25 +82,30 @@ public void addFindBy(QueryInfo queryInfo, MethodSpec.Builder spec, boolean asyn
83
82
}
84
83
spec .addStatement (
85
84
"return new $T($L)" ,
86
- ClassName .bestGuess (queryInfo .entityType ().toString ()),
85
+ ClassName .bestGuess (info .entityType ().toString ()),
87
86
String .join (", " , arguments ));
88
87
});
89
88
}
90
89
91
90
@ Override
92
- public void addExistsBy (QueryInfo queryInfo , MethodSpec .Builder spec , boolean async ) {
93
- var query = "select 1 from %s where %s"
94
- .formatted (queryInfo .tableName (), createWhereForSections (queryInfo .sections ()));
91
+ public void addExistsBy (QueryInfo info , MethodSpec .Builder spec , boolean async ) {
92
+ var query = "select 1 from %s where %s" .formatted (info .tableName (), createWhereFor (info ));
95
93
addActionedData (
96
94
spec ,
97
95
async ,
98
96
query ,
99
- queryInfo .parameterNames (),
97
+ info .parameterNames (),
100
98
"%s" ,
101
- queryInfo ::columnFor ,
99
+ info ::columnFor ,
102
100
() -> spec .addStatement ("return result.next()" ));
103
101
}
104
102
103
+ @ Override
104
+ public void addDeleteBy (QueryInfo info , MethodSpec .Builder spec , boolean async ) {
105
+ var query = "delete from %s where %s" .formatted (info .tableName (), createWhereFor (info ));
106
+ addActionedData (spec , async , query , info .parameterNames (), "%s" , info ::columnFor , null );
107
+ }
108
+
105
109
@ Override
106
110
public void addInsert (EntityInfo info , VariableElement parameter , MethodSpec .Builder spec , boolean async ) {
107
111
var columnNames =
@@ -113,15 +117,15 @@ public void addInsert(EntityInfo info, VariableElement parameter, MethodSpec.Bui
113
117
114
118
@ Override
115
119
public void addUpdate (EntityInfo info , VariableElement parameter , MethodSpec .Builder spec , boolean async ) {
116
- var query = "update %s set %s where %s" .formatted (info .name (), createSetFor (info ), createWhereForSimple (info ));
120
+ var query = "update %s set %s where %s" .formatted (info .name (), createSetFor (info ), createWhereFor (info ));
117
121
var parameters = new ArrayList <>(info .notKeyColumns ());
118
122
parameters .addAll (info .keyColumns ());
119
123
addSimple (info , parameter , query , parameters , spec , async );
120
124
}
121
125
122
126
@ Override
123
127
public void addDelete (EntityInfo info , VariableElement parameter , MethodSpec .Builder spec , boolean async ) {
124
- var query = "delete from %s where %s" .formatted (info .name (), createWhereForSimple (info ));
128
+ var query = "delete from %s where %s" .formatted (info .name (), createWhereFor (info ));
125
129
addSimple (info , parameter , query , info .keyColumns (), spec , async );
126
130
}
127
131
@@ -179,12 +183,12 @@ private String createSetFor(EntityInfo info) {
179
183
return createParametersForColumns (info .notKeyColumns (), ',' );
180
184
}
181
185
182
- private String createWhereForSimple (EntityInfo info ) {
186
+ private String createWhereFor (EntityInfo info ) {
183
187
return createParametersForColumns (info .keyColumns (), ' ' );
184
188
}
185
189
186
- private String createWhereForSections ( List < QuerySection > sections ) {
187
- return createParametersForSections (sections , ' ' );
190
+ private String createWhereFor ( QueryInfo info ) {
191
+ return createParametersForSections (info . sections () , ' ' );
188
192
}
189
193
190
194
private String createParametersForColumns (List <ColumnInfo > columns , char separator ) {
0 commit comments