Skip to content

Commit 3ae069c

Browse files
committed
处理timeStamp默认问题
1 parent 21bbc68 commit 3ae069c

File tree

3 files changed

+58
-7
lines changed

3 files changed

+58
-7
lines changed

api-boot-project/api-boot-maven-plugins/api-boot-mybatis-enhance-maven-codegen/src/main/java/org/minbox/framework/api/boot/maven/plugin/mybatis/enhance/codegen/EnhanceCodegenConstant.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,8 @@ public interface EnhanceCodegenConstant {
3737
* empty string
3838
*/
3939
String EMPTY_STRING = "";
40+
/**
41+
* timestamp default value
42+
*/
43+
String CURRENT_TIMESTAMP = "CURRENT_TIMESTAMP";
4044
}

api-boot-project/api-boot-maven-plugins/api-boot-mybatis-enhance-maven-codegen/src/main/java/org/minbox/framework/api/boot/maven/plugin/mybatis/enhance/codegen/builder/impl/AbstractClassBuilder.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ public abstract class AbstractClassBuilder implements ClassBuilder {
5151
* Column Annotation
5252
*/
5353
public static final String COLUMN_ANNOTATION = "@Column(name = \"%s\")";
54+
/**
55+
* Column Insertable Annotation
56+
*/
57+
public static final String COLUMN_INSERTABLE_ANNOTATION = "@Column(name = \"%s\",insertable = true)";
5458
/**
5559
* Id auto Annotation
5660
*/

api-boot-project/api-boot-maven-plugins/api-boot-mybatis-enhance-maven-codegen/src/main/java/org/minbox/framework/api/boot/maven/plugin/mybatis/enhance/codegen/builder/impl/EntityClassBuilder.java

Lines changed: 50 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package org.minbox.framework.api.boot.maven.plugin.mybatis.enhance.codegen.builder.impl;
1919

20+
import com.gitee.hengboy.builder.common.enums.JavaTypeEnum;
2021
import com.gitee.hengboy.mybatis.enhance.common.annotation.Column;
2122
import com.gitee.hengboy.mybatis.enhance.common.annotation.Id;
2223
import com.gitee.hengboy.mybatis.enhance.common.annotation.Table;
@@ -88,14 +89,9 @@ public String getClassContent() {
8889
writer.line(column.isAutoincrement() ? ID_AUTO_ANNOTATION : ID_UUID_ANNOTATION);
8990
}
9091
// @Column
91-
writer.line(String.format(COLUMN_ANNOTATION, column.getColumnName()));
92+
writer.line(getColumnAnnotation(column));
9293
// private field
93-
String defaultValue = EnhanceCodegenConstant.EMPTY_STRING;
94-
if (!StringUtils.isEmpty(column.getDefaultValue())) {
95-
defaultValue = String.format(" = %s", column.getDefaultValue());
96-
}
97-
98-
writer.line(String.format(FIELD, column.getJavaType(), formatterJavaPropertyName(column.getColumnName()), defaultValue));
94+
writer.line(String.format(FIELD, column.getJavaType(), formatterJavaPropertyName(column.getColumnName()), getColumnDefaultValue(column)));
9995
}
10096

10197
// end class
@@ -135,4 +131,51 @@ void chooseImport(com.gitee.hengboy.builder.core.database.model.Table table, Cod
135131
public String getPrefixDir() {
136132
return EnhanceCodegenConstant.EMPTY_STRING;
137133
}
134+
135+
/**
136+
* get column annotation definition
137+
*
138+
* @param column column
139+
* @return
140+
*/
141+
private String getColumnAnnotation(com.gitee.hengboy.builder.core.database.model.Column column) {
142+
// append content to @column(name=xxx after
143+
String columnAnnotation = String.format(COLUMN_ANNOTATION, column.getColumnName());
144+
// is java.sql.Timestamp && default value is current_timestamp
145+
if (JavaTypeEnum.TYPE_TIMESTAMP.getShortName().equals(column.getJavaType()) && EnhanceCodegenConstant.CURRENT_TIMESTAMP.equals(column.getDefaultValue())) {
146+
columnAnnotation = String.format(COLUMN_INSERTABLE_ANNOTATION, column.getColumnName());
147+
}
148+
return columnAnnotation;
149+
}
150+
151+
/**
152+
* get column default value
153+
* string default value
154+
* int default value
155+
*
156+
* @param column column
157+
* @return
158+
*/
159+
private String getColumnDefaultValue(com.gitee.hengboy.builder.core.database.model.Column column) {
160+
String pattern = " = %s";
161+
String defaultValue = EnhanceCodegenConstant.EMPTY_STRING;
162+
// don't have default value
163+
if (StringUtils.isEmpty(column.getDefaultValue())) {
164+
return defaultValue;
165+
}
166+
167+
// java.lang.Integer
168+
if (JavaTypeEnum.TYPE_INTEGER.getShortName().equals(column.getJavaType())) {
169+
defaultValue = column.getDefaultValue();
170+
}
171+
// java.lang.String
172+
else if (JavaTypeEnum.TYPE_STRING.getShortName().equals(column.getJavaType())) {
173+
defaultValue = String.format("%s%s%s", "\"", column.getDefaultValue(), "\"");
174+
}
175+
// other is ignore
176+
else {
177+
178+
}
179+
return !StringUtils.isEmpty(defaultValue) ? String.format(pattern, defaultValue) : defaultValue;
180+
}
138181
}

0 commit comments

Comments
 (0)