|
17 | 17 |
|
18 | 18 | package org.minbox.framework.api.boot.maven.plugin.mybatis.enhance.codegen.builder.impl; |
19 | 19 |
|
| 20 | +import com.gitee.hengboy.builder.common.enums.JavaTypeEnum; |
20 | 21 | import com.gitee.hengboy.mybatis.enhance.common.annotation.Column; |
21 | 22 | import com.gitee.hengboy.mybatis.enhance.common.annotation.Id; |
22 | 23 | import com.gitee.hengboy.mybatis.enhance.common.annotation.Table; |
@@ -88,14 +89,9 @@ public String getClassContent() { |
88 | 89 | writer.line(column.isAutoincrement() ? ID_AUTO_ANNOTATION : ID_UUID_ANNOTATION); |
89 | 90 | } |
90 | 91 | // @Column |
91 | | - writer.line(String.format(COLUMN_ANNOTATION, column.getColumnName())); |
| 92 | + writer.line(getColumnAnnotation(column)); |
92 | 93 | // 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))); |
99 | 95 | } |
100 | 96 |
|
101 | 97 | // end class |
@@ -135,4 +131,51 @@ void chooseImport(com.gitee.hengboy.builder.core.database.model.Table table, Cod |
135 | 131 | public String getPrefixDir() { |
136 | 132 | return EnhanceCodegenConstant.EMPTY_STRING; |
137 | 133 | } |
| 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 | + } |
138 | 181 | } |
0 commit comments