55
66import java .lang .reflect .Field ;
77import java .sql .Timestamp ;
8+ import java .util .ArrayList ;
89import java .util .Arrays ;
910import java .util .List ;
1011import java .util .UUID ;
@@ -236,8 +237,8 @@ public String generateCreateScript(Class<?> clazz) {
236237 * @return a string representing a part of SQL script.
237238 */
238239 private <T > String processFieldsForScript (Class <T > clazz , T object , boolean forDelete ) throws IllegalAccessException {
239- StringBuilder keys = new StringBuilder ();
240- StringBuilder values = new StringBuilder ();
240+ List < String > keys = new ArrayList <> ();
241+ List < String > values = new ArrayList <> ();
241242
242243 for (Field field : clazz .getDeclaredFields ()) {
243244 field .setAccessible (true );
@@ -253,15 +254,19 @@ private <T> String processFieldsForScript(Class<T> clazz, T object, boolean forD
253254 DatabaseValueProcessor valueProcessor = databaseAPI .getProcessor (field .getType ());
254255
255256 String processedValue = processFieldValue (fieldValue , valueProcessor );
256- keys .append (dbName ). append ( "," );
257- values .append (processedValue ). append ( "," );
257+ keys .add (dbName );
258+ values .add (processedValue );
258259 }
259260
260- // Remove trailing commas
261- if (!keys .isEmpty ()) keys .setLength (keys .length () - 1 );
262- if (!values .isEmpty ()) values .setLength (values .length () - 1 );
261+ if (keys .isEmpty ()) return "" ;
262+
263+ StringBuilder builder = new StringBuilder ();
264+ for (int i = 0 ; i < keys .size (); i ++) {
265+ builder .append (keys .get (i )).append (" = " ).append (values .get (i )).append (", " );
266+ }
263267
264- return keys + " = " + values ;
268+ builder .setLength (builder .length () - 2 );
269+ return builder .toString ();
265270 }
266271
267272 private <T > String getValuesFromField (Class <T > clazz , T object ) throws IllegalAccessException {
0 commit comments