66import static java .lang .reflect .Modifier .PRIVATE ;
77import static java .lang .reflect .Modifier .PUBLIC ;
88import static java .util .Optional .ofNullable ;
9+ import static org .apache .commons .lang3 .StringUtils .isNotBlank ;
910import static org .apache .logging .log4j .LogManager .getLogger ;
1011
1112import javax .persistence .Column ;
2021import org .burningwave .core .classes .TypeDeclarationSourceGenerator ;
2122import org .burningwave .core .classes .UnitSourceGenerator ;
2223import org .burningwave .core .classes .VariableSourceGenerator ;
24+ import org .hibernate .annotations .ColumnDefault ;
2325
2426import dev .sassine .api .structure .export .builder .factory .Factory ;
2527import dev .sassine .api .structure .model .java .EntityModel ;
@@ -51,6 +53,7 @@ public void execute(EntityModel entityModel, boolean isAutoGenerated, String nam
5153 entityModel .getFields ().forEach (fieldModel -> {
5254 VariableSourceGenerator field = this .buildField (fieldModel );
5355 importJavaTime (gen , fieldModel );
56+ this .setDefaultValue (field ,fieldModel );
5457 this .generateEntityPK (isAutoGenerated , fieldModel , field , entityModel );
5558 log .debug ("Generated EntityPK" );
5659 clEntity .addField (field );
@@ -61,6 +64,13 @@ public void execute(EntityModel entityModel, boolean isAutoGenerated, String nam
6164 log .debug ("ClassEntity ({}) stored" , nameClass );
6265 }
6366
67+ private void setDefaultValue (VariableSourceGenerator field , FieldModel fieldModel ) {
68+ if (isNotBlank (fieldModel .getDefaultValue ())) {
69+ field .addAnnotation (AnnotationSourceGenerator .create (ColumnDefault .class ).addParameter ("value" ,
70+ VariableSourceGenerator .create (format (FORMAT_STRING_FIELDS , fieldModel .getDefaultValue ()))));
71+ }
72+ }
73+
6474 private ClassSourceGenerator buildClassSource (EntityModel entityModel , String nameClass ) {
6575 return ClassSourceGenerator
6676 .create (TypeDeclarationSourceGenerator .create (format (FORMAT_ENTITY_CLASSNAME , nameClass )))
0 commit comments