Skip to content

Commit 07260ea

Browse files
authored
Merge pull request #8 from Sassine/feature/default-value-entity
Feature/default value entity
2 parents ae85835 + 90958ed commit 07260ea

5 files changed

Lines changed: 29 additions & 6 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
55
<modelVersion>4.0.0</modelVersion>
66
<artifactId>sqlschema2java</artifactId>
7-
<version>1.0.0-SNAPSHOT</version>
7+
<version>1.0.0-beta1</version>
88
<name>sqlschema2java</name>
99
<packaging>pom</packaging>
1010
<groupId>dev.sassine.api</groupId>

sqlschema2java-core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>dev.sassine.api</groupId>
88
<artifactId>sqlschema2java-core</artifactId>
9-
<version>1.0.1-SNAPSHOT</version>
9+
<version>1.0.0-beta1</version>
1010
<name>sqlschema2java-core</name>
1111

1212
<description>Auto generate Class DTO, Entity and Repository from SQL Query. </description>

sqlschema2java-core/src/main/java/dev/sassine/api/structure/export/builder/factory/impl/EntityFactory.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,19 @@
22

33
import static dev.sassine.api.structure.export.builder.function.ImportBeanFunction.importJavaTime;
44
import static dev.sassine.api.structure.export.builder.function.StoreClassFuncation.store;
5+
import static dev.sassine.api.structure.type.TypeConverter.TYPE_LOCAL_DATE;
6+
import static dev.sassine.api.structure.type.TypeConverter.TYPE_LOCAL_DATE_TIME;
7+
import static dev.sassine.api.structure.type.TypeConverter.TYPE_LOCAL_TIME;
58
import static java.lang.String.format;
69
import static java.lang.reflect.Modifier.PRIVATE;
710
import static java.lang.reflect.Modifier.PUBLIC;
11+
import static java.util.Objects.nonNull;
812
import static java.util.Optional.ofNullable;
13+
import static org.apache.commons.lang3.StringUtils.isNotBlank;
914
import static org.apache.logging.log4j.LogManager.getLogger;
1015

16+
import java.util.Map;
17+
1118
import javax.persistence.Column;
1219
import javax.persistence.Entity;
1320
import javax.persistence.GeneratedValue;
@@ -20,6 +27,7 @@
2027
import org.burningwave.core.classes.TypeDeclarationSourceGenerator;
2128
import org.burningwave.core.classes.UnitSourceGenerator;
2229
import org.burningwave.core.classes.VariableSourceGenerator;
30+
import org.hibernate.annotations.ColumnDefault;
2331

2432
import dev.sassine.api.structure.export.builder.factory.Factory;
2533
import dev.sassine.api.structure.model.java.EntityModel;
@@ -40,6 +48,11 @@ public class EntityFactory implements Factory {
4048
private static final String PARAM_NULLABLE = "nullable";
4149
private static final String PARAM_NAME = "name";
4250

51+
Map<String, String> defaultValueLocal = Map.of(
52+
TYPE_LOCAL_DATE, "LocalDate.now()",
53+
TYPE_LOCAL_TIME, "LocalTime.now()",
54+
TYPE_LOCAL_DATE_TIME, "LocalDateTime.now()");
55+
4356
@Override
4457
public void execute(EntityModel entityModel, boolean isAutoGenerated, String nameClass, String packageName) {
4558
log.debug("ClassName: ({}) - PackageName: ({}) ", nameClass, packageName);
@@ -51,6 +64,7 @@ public void execute(EntityModel entityModel, boolean isAutoGenerated, String nam
5164
entityModel.getFields().forEach(fieldModel -> {
5265
VariableSourceGenerator field = this.buildField(fieldModel);
5366
importJavaTime(gen, fieldModel);
67+
this.setDefaultValue(field,fieldModel);
5468
this.generateEntityPK(isAutoGenerated, fieldModel, field, entityModel);
5569
log.debug("Generated EntityPK");
5670
clEntity.addField(field);
@@ -61,6 +75,15 @@ public void execute(EntityModel entityModel, boolean isAutoGenerated, String nam
6175
log.debug("ClassEntity ({}) stored", nameClass);
6276
}
6377

78+
private void setDefaultValue(VariableSourceGenerator field, FieldModel fieldModel) {
79+
if(isNotBlank(fieldModel.getDefaultValue())) {
80+
var value = defaultValueLocal.get(fieldModel.getType());
81+
if(nonNull(value)) field.setValue(defaultValueLocal.get(fieldModel.getType()));
82+
field.addAnnotation(AnnotationSourceGenerator.create(ColumnDefault.class).addParameter("value",
83+
VariableSourceGenerator.create(format(FORMAT_STRING_FIELDS, fieldModel.getDefaultValue()))));
84+
}
85+
}
86+
6487
private ClassSourceGenerator buildClassSource(EntityModel entityModel, String nameClass) {
6588
return ClassSourceGenerator
6689
.create(TypeDeclarationSourceGenerator.create(format(FORMAT_ENTITY_CLASSNAME, nameClass)))

sqlschema2java-example/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<modelVersion>4.0.0</modelVersion>
66
<groupId>dev.sasine.api</groupId>
77
<artifactId>sqlschema2java-example</artifactId>
8-
<version>1.0.0-SNAPSHOT</version>
8+
<version>1.0.0-beta1</version>
99
<packaging>pom</packaging>
1010

1111
<developers>
@@ -33,7 +33,7 @@
3333
<plugin>
3434
<groupId>dev.sassine.api</groupId>
3535
<artifactId>sqlschema2java-maven-plugin</artifactId>
36-
<version>1.0.1-SNAPSHOT</version>
36+
<version>1.0.0-beta1</version>
3737
<executions>
3838
<execution>
3939
<goals>

sqlschema2java-maven-plugin/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<modelVersion>4.0.0</modelVersion>
77
<groupId>dev.sassine.api</groupId>
88
<artifactId>sqlschema2java-maven-plugin</artifactId>
9-
<version>1.0.1-SNAPSHOT</version>
9+
<version>1.0.0-beta1</version>
1010
<name>sqlschema2java-maven-plugin</name>
1111
<packaging>maven-plugin</packaging>
1212

@@ -81,7 +81,7 @@
8181
</reporting>
8282

8383
<properties>
84-
<sqlschema2java-core.version>1.0.1-SNAPSHOT</sqlschema2java-core.version>
84+
<sqlschema2java-core.version>1.0.0-beta1</sqlschema2java-core.version>
8585
<maven.compiler.target>1.8</maven.compiler.target>
8686
<maven.compiler.source>1.8</maven.compiler.source>
8787
<maven-plugin-api.version>3.6.2</maven-plugin-api.version>

0 commit comments

Comments
 (0)