77import org .javawebstack .orm .migration .AutoMigrator ;
88import org .javawebstack .orm .query .Query ;
99import org .javawebstack .orm .wrapper .SQL ;
10+ import org .javawebstack .orm .wrapper .builder .SQLQueryString ;
1011
1112import java .lang .reflect .Field ;
1213import java .sql .SQLException ;
@@ -100,8 +101,6 @@ public void save(T entry) {
100101 }
101102
102103 public void create (T entry ) {
103- if (info .getConfig ().getInjector () != null )
104- info .getConfig ().getInjector ().inject (entry );
105104 observers .forEach (o -> o .saving (entry ));
106105 observers .forEach (o -> o .creating (entry ));
107106 executeCreate (entry );
@@ -124,28 +123,14 @@ private void executeCreate(T entry) {
124123 if (field .get (entry ) == null )
125124 field .set (entry , UUID .randomUUID ());
126125 }
127- List <Object > params = new ArrayList <>();
128- StringBuilder sb = new StringBuilder ("INSERT INTO `" );
129- sb .append (info .getTableName ());
130- sb .append ("` (" );
131- List <String > cols = new ArrayList <>();
132- List <String > values = new ArrayList <>();
133126 Map <String , Object > map = SQLMapper .map (this , entry );
134127 if (info .isAutoIncrement ()) {
135128 String idCol = info .getColumnName (info .getIdField ());
136129 if (map .containsKey (idCol ) && map .get (idCol ) == null )
137130 map .remove (idCol );
138131 }
139- for (String columnName : map .keySet ()) {
140- cols .add ("`" + columnName + "`" );
141- values .add ("?" );
142- params .add (map .get (columnName ));
143- }
144- sb .append (String .join ("," , cols ));
145- sb .append (") VALUES (" );
146- sb .append (String .join ("," , values ));
147- sb .append (");" );
148- int id = connection .write (sb .toString (), params .toArray ());
132+ SQLQueryString qs = getConnection ().builder ().buildInsert (info , map );
133+ int id = connection .write (qs .getQuery (), qs .getParameters ().toArray ());
149134 if (info .isAutoIncrement ())
150135 info .getField (info .getIdField ()).set (entry , id );
151136 entry .setEntryExists (true );
@@ -237,8 +222,6 @@ public Object getId(Object entity) {
237222 }
238223
239224 public Repo <T > observe (Observer <T > observer ) {
240- if (info .getConfig ().getInjector () != null )
241- info .getConfig ().getInjector ().inject (observer );
242225 observers .add (observer );
243226 return this ;
244227 }
0 commit comments