diff --git a/pom.xml b/pom.xml
index cf5f2a1..f4957b8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
sqlschema2java
- 1.0.0-SNAPSHOT
+ 1.0.0-beta1
sqlschema2java
pom
dev.sassine.api
diff --git a/sqlschema2java-core/pom.xml b/sqlschema2java-core/pom.xml
index ab1983e..fc20ddd 100644
--- a/sqlschema2java-core/pom.xml
+++ b/sqlschema2java-core/pom.xml
@@ -6,7 +6,7 @@
dev.sassine.api
sqlschema2java-core
- 1.0.1-SNAPSHOT
+ 1.0.0-beta1
sqlschema2java-core
Auto generate Class DTO, Entity and Repository from SQL Query.
diff --git a/sqlschema2java-core/src/main/java/dev/sassine/api/structure/export/builder/factory/impl/EntityFactory.java b/sqlschema2java-core/src/main/java/dev/sassine/api/structure/export/builder/factory/impl/EntityFactory.java
index f5d6e25..e75b309 100644
--- a/sqlschema2java-core/src/main/java/dev/sassine/api/structure/export/builder/factory/impl/EntityFactory.java
+++ b/sqlschema2java-core/src/main/java/dev/sassine/api/structure/export/builder/factory/impl/EntityFactory.java
@@ -2,12 +2,19 @@
import static dev.sassine.api.structure.export.builder.function.ImportBeanFunction.importJavaTime;
import static dev.sassine.api.structure.export.builder.function.StoreClassFuncation.store;
+import static dev.sassine.api.structure.type.TypeConverter.TYPE_LOCAL_DATE;
+import static dev.sassine.api.structure.type.TypeConverter.TYPE_LOCAL_DATE_TIME;
+import static dev.sassine.api.structure.type.TypeConverter.TYPE_LOCAL_TIME;
import static java.lang.String.format;
import static java.lang.reflect.Modifier.PRIVATE;
import static java.lang.reflect.Modifier.PUBLIC;
+import static java.util.Objects.nonNull;
import static java.util.Optional.ofNullable;
+import static org.apache.commons.lang3.StringUtils.isNotBlank;
import static org.apache.logging.log4j.LogManager.getLogger;
+import java.util.Map;
+
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
@@ -20,6 +27,7 @@
import org.burningwave.core.classes.TypeDeclarationSourceGenerator;
import org.burningwave.core.classes.UnitSourceGenerator;
import org.burningwave.core.classes.VariableSourceGenerator;
+import org.hibernate.annotations.ColumnDefault;
import dev.sassine.api.structure.export.builder.factory.Factory;
import dev.sassine.api.structure.model.java.EntityModel;
@@ -40,6 +48,11 @@ public class EntityFactory implements Factory {
private static final String PARAM_NULLABLE = "nullable";
private static final String PARAM_NAME = "name";
+ Map defaultValueLocal = Map.of(
+ TYPE_LOCAL_DATE, "LocalDate.now()",
+ TYPE_LOCAL_TIME, "LocalTime.now()",
+ TYPE_LOCAL_DATE_TIME, "LocalDateTime.now()");
+
@Override
public void execute(EntityModel entityModel, boolean isAutoGenerated, String nameClass, String packageName) {
log.debug("ClassName: ({}) - PackageName: ({}) ", nameClass, packageName);
@@ -51,6 +64,7 @@ public void execute(EntityModel entityModel, boolean isAutoGenerated, String nam
entityModel.getFields().forEach(fieldModel -> {
VariableSourceGenerator field = this.buildField(fieldModel);
importJavaTime(gen, fieldModel);
+ this.setDefaultValue(field,fieldModel);
this.generateEntityPK(isAutoGenerated, fieldModel, field, entityModel);
log.debug("Generated EntityPK");
clEntity.addField(field);
@@ -61,6 +75,15 @@ public void execute(EntityModel entityModel, boolean isAutoGenerated, String nam
log.debug("ClassEntity ({}) stored", nameClass);
}
+ private void setDefaultValue(VariableSourceGenerator field, FieldModel fieldModel) {
+ if(isNotBlank(fieldModel.getDefaultValue())) {
+ var value = defaultValueLocal.get(fieldModel.getType());
+ if(nonNull(value)) field.setValue(defaultValueLocal.get(fieldModel.getType()));
+ field.addAnnotation(AnnotationSourceGenerator.create(ColumnDefault.class).addParameter("value",
+ VariableSourceGenerator.create(format(FORMAT_STRING_FIELDS, fieldModel.getDefaultValue()))));
+ }
+ }
+
private ClassSourceGenerator buildClassSource(EntityModel entityModel, String nameClass) {
return ClassSourceGenerator
.create(TypeDeclarationSourceGenerator.create(format(FORMAT_ENTITY_CLASSNAME, nameClass)))
diff --git a/sqlschema2java-example/pom.xml b/sqlschema2java-example/pom.xml
index 9967671..de957c9 100644
--- a/sqlschema2java-example/pom.xml
+++ b/sqlschema2java-example/pom.xml
@@ -5,7 +5,7 @@
4.0.0
dev.sasine.api
sqlschema2java-example
- 1.0.0-SNAPSHOT
+ 1.0.0-beta1
pom
@@ -33,7 +33,7 @@
dev.sassine.api
sqlschema2java-maven-plugin
- 1.0.1-SNAPSHOT
+ 1.0.0-beta1
diff --git a/sqlschema2java-maven-plugin/pom.xml b/sqlschema2java-maven-plugin/pom.xml
index 1c75c88..b45d306 100644
--- a/sqlschema2java-maven-plugin/pom.xml
+++ b/sqlschema2java-maven-plugin/pom.xml
@@ -6,7 +6,7 @@
4.0.0
dev.sassine.api
sqlschema2java-maven-plugin
- 1.0.1-SNAPSHOT
+ 1.0.0-beta1
sqlschema2java-maven-plugin
maven-plugin
@@ -81,7 +81,7 @@
- 1.0.1-SNAPSHOT
+ 1.0.0-beta1
1.8
1.8
3.6.2