diff options
Diffstat (limited to 'container-compiler-plugin/src/main/java/io/trygvis/persistence/generators/DaoGenerator.java')
-rw-r--r-- | container-compiler-plugin/src/main/java/io/trygvis/persistence/generators/DaoGenerator.java | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/container-compiler-plugin/src/main/java/io/trygvis/persistence/generators/DaoGenerator.java b/container-compiler-plugin/src/main/java/io/trygvis/persistence/generators/DaoGenerator.java index 7cd3f59..b9b65a5 100644 --- a/container-compiler-plugin/src/main/java/io/trygvis/persistence/generators/DaoGenerator.java +++ b/container-compiler-plugin/src/main/java/io/trygvis/persistence/generators/DaoGenerator.java @@ -26,9 +26,10 @@ import static io.trygvis.container.compiler.Utils.*; import static io.trygvis.container.compiler.model.TypeRef.VOID; import static io.trygvis.persistence.FieldMirror.FieldType.PRIMITIVE; import static io.trygvis.persistence.FieldMirror.FieldType.REFERENCE; -import static io.trygvis.persistence.FieldMirror.SetterType; import static java.lang.String.format; import static java.lang.reflect.Modifier.PUBLIC; +import static javax.persistence.AccessType.FIELD; +import static javax.persistence.AccessType.PROPERTY; import static org.apache.commons.lang.StringUtils.join; public class DaoGenerator { @@ -51,16 +52,17 @@ public class DaoGenerator { g.add(new Constructor(p, "super(" + session.name + ");")); TypeRef stringType = g.imports.add(String.class); + TypeRef stringArrayType = g.imports.add(String[].class); TypeRef sqlEntityDescType = g.imports.add(SqlEntityMeta.class); TypeRef sqlException = g.imports.add(SQLException.class); // TypeRef listOfEntityType = new TypeRef(List.class).args(entity.type); FieldRef createTableSql = g.addPublicStaticFinalField(stringType, "createTableSql"). value(toJavaString(createTableSql())); - g.add(new MethodRef(PUBLIC, stringType, "createTableSql", "return createTableSql;")); + g.add(new MethodRef(PUBLIC, stringArrayType, "createTableSql", "return new String[]{createTableSql};")); FieldRef dropTableSql = g.addPublicStaticFinalField(stringType, "dropTableSql"). value(toJavaString(dropTableSql())); - g.add(new MethodRef(PUBLIC, stringType, "dropTableSql", "return dropTableSql;")); + g.add(new MethodRef(PUBLIC, stringArrayType, "dropTableSql", "return new String[]{dropTableSql};")); g.addPublicStaticFinalField(stringType, "insertIntoSql"). value(toJavaString(insertIntoSql())); g.addPublicStaticFinalField(stringType, "deleteFromSql"). @@ -277,7 +279,7 @@ public class DaoGenerator { Parameters.ParameterRef row = p.addParameter(this.entity.rowType, "row"); List<String> body = new ArrayList<>(); - List<String> cArgs = new ArrayList<>(); + String[] cArgs = new String[entity.getConstructorParameters().size()]; List<String> method = new ArrayList<>(); for (int i = 0; i < entity.getFields().size(); i++) { FieldMirror field = this.entity.getFields().get(i); @@ -292,11 +294,13 @@ public class DaoGenerator { // body.add(x); } - if (field.setterType == SetterType.CONSTRUCTOR) { - cArgs.add(value); - } else if (field.setterType == SetterType.METHOD) { + if (field.constructorParam) { + System.out.println("entity.getConstructorParameters() = " + entity.getConstructorParameters()); + System.out.println("field.javaName = " + field.javaName); + cArgs[entity.getConstructorParameters().indexOf(field.javaName)] = value; + } else if (field.setterType == PROPERTY) { method.add("_entity." + toSetterName(field.javaName) + "(" + value + ");"); - } else if (field.setterType == SetterType.FIELD) { + } else if (field.setterType == FIELD) { method.add("_entity." + field.javaName + " = " + value + ";"); } } |