added database value generation with identity generation

This commit is contained in:
wea_ondara
2022-11-27 08:10:52 +01:00
parent 3e581a9e4a
commit 195f3d0148
14 changed files with 118 additions and 15 deletions

View File

@@ -1,5 +1,6 @@
package jef.model.migration.creator;
import jef.model.annotations.Generated;
import jef.model.constraints.ForeignKeyConstraint;
import jef.model.migration.Migration;
import jef.model.migration.MigrationBuilder;
@@ -110,9 +111,12 @@ public class MigrationBuilderGenerator {
}
private String addFieldOpOptional(AddFieldOperation op) {
return "\n"
+ " .notNull(" + op.isNotNull() + ")\n"
+ " .sqlType(\"" + op.getSqlType() + "\")";
if (op.getGenerated() != Generated.Type.NONE) {
imports.add(Generated.class);
}
return "\n .notNull(" + op.isNotNull() + ")"
+ "\n .sqlType(\"" + op.getSqlType() + "\")"
+ (op.getGenerated() != Generated.Type.NONE ? "\n .generated(Generated.Type." + op.getGenerated() + ")" : "");
}
private String addForeignKeyOp(AddForeignKeyOperation op) {

View File

@@ -145,7 +145,8 @@ public class MigrationCreator {
.filter(DbField::isDatabaseField)
.map(e -> new AddFieldOperation.Builder(toEntity.getName(), e.getName())
.notNull(e.isNotNull())
.sqlType(getSqlType(e)))
.sqlType(getSqlType(e))
.generated(e.getGenerated()))
.toList(),
Optional.ofNullable(toEntity.getPrimaryKey())
.map(e -> new AddPrimaryKeyOperation.Builder(e.getName(), toEntity.getName(), e.getFields().stream().map(DbField::getName).toList()))
@@ -255,7 +256,8 @@ public class MigrationCreator {
handledTo.add(toField);
steps.add(new AddFieldOperation.Builder(toField.getEntity().getName(), toField.getName())
.sqlType(getSqlType(toField))
.notNull(toField.isNotNull()));
.notNull(toField.isNotNull())
.generated(toField.getGenerated()));
}
}
}

View File

@@ -5,6 +5,7 @@ import jef.model.DbEntity;
import jef.model.DbEntityBuilder;
import jef.model.DbField;
import jef.model.ModelBuilder;
import jef.model.annotations.Generated;
import jef.model.constraints.ForeignKeyConstraint;
import jef.model.constraints.IndexConstraint;
import jef.model.constraints.KeyConstraint;
@@ -53,10 +54,14 @@ public class ModelBuilderGenerator {
java += indent + "mb.entity(\"" + entity.getTypeName() + "\")\n"
+ indent + " .name(\"" + entity.getName() + "\");\n";
for (DbField<?> field : entity.getFields()) {
if (field.getGenerated() != Generated.Type.NONE) {
imports.add(Generated.class);
}
java += indent + "mb.entity(\"" + entity.getTypeName() + "\")\n"
+ indent + " .field(\"" + field.getName() + "\", \"" + field.getTypeName() + "\")"
+ "\n" + indent + " .sqlType(" + getSqlType(field) + ")"
+ (field.isNotNull() ? "\n" + indent + " .isNotNull()" : "")
+ (field.getGenerated() != Generated.Type.NONE ? "\n" + indent + " .generated(Generated.Type." + field.getGenerated() + ")" : "")
+ "\n" + indent + " .isDatabaseField(" + field.isDatabaseField() + ")"
+ "\n" + indent + " .isModelField(" + field.isModelField() + ");\n";
}