44import lombok .Getter ;
55import lombok .Setter ;
66
7+ import java .lang .annotation .Annotation ;
78import java .util .ArrayList ;
89import java .util .List ;
10+ import java .util .Set ;
911
1012/**
1113 * 表实体元数据
@@ -64,6 +66,10 @@ public static class ColumnMeta {
6466 * 主键自增策略
6567 */
6668 private GeneratedValueMeta generatedValue ;
69+ /**
70+ * 字段注解
71+ */
72+ private Set <Class <? extends Annotation >> annotationClasses ;
6773 /**
6874 * 备注
6975 */
@@ -149,8 +155,12 @@ public void setTable(String name) {
149155 this .setTable (name , null , null , null );
150156 }
151157
158+ public void addColumn (ColumnMeta column ) {
159+ this .columns .add (column );
160+ }
161+
152162 public void addPrimaryKeyColumn (Class <?> type , String fieldName , String columnName , GenerationType strategy ,
153- String generator , String comment , boolean isLob , boolean unique , boolean nullable ,
163+ String generator , Set < Class <? extends Annotation >> annotationClasses , String comment , boolean isLob , boolean unique , boolean nullable ,
154164 boolean insertable , boolean updatable , String columnDefinition ,
155165 int length , int precision , int scale ) {
156166 ColumnMeta column = new ColumnMeta ();
@@ -161,6 +171,7 @@ public void addPrimaryKeyColumn(Class<?> type, String fieldName, String columnNa
161171 GeneratedValueMeta generatedValueMeta = new GeneratedValueMeta ();
162172 generatedValueMeta .setGenerator (generator );
163173 generatedValueMeta .setStrategy (strategy );
174+ column .setAnnotationClasses (annotationClasses );
164175 column .setGeneratedValue (generatedValueMeta );
165176 column .setLob (isLob );
166177 column .setComment (comment );
@@ -172,7 +183,7 @@ public void addPrimaryKeyColumn(Class<?> type, String fieldName, String columnNa
172183 column .setLength (length );
173184 column .setPrecision (precision );
174185 column .setScale (scale );
175- this .columns . add (column );
186+ this .addColumn (column );
176187 }
177188
178189 public void addColumn (Class <?> type , String fieldName , String columnName , String comment , boolean isLob ,
@@ -194,7 +205,7 @@ public void addColumn(Class<?> type, String fieldName, String columnName, String
194205 column .setLength (length );
195206 column .setPrecision (precision );
196207 column .setScale (scale );
197- this .columns . add (column );
208+ this .addColumn (column );
198209 }
199210
200211 public void addColumn (Class <?> type , String name , String comment ) {
@@ -214,15 +225,23 @@ public void addColumn(Class<?> type, String name) {
214225 }
215226
216227 public void addPrimaryKeyColumn (Class <?> type , String name ) {
217- this .addPrimaryKeyColumn (type , name , name , null , null , null , false , false , false , false , false , null , 255 , 0 , 0 );
228+ this .addPrimaryKeyColumn (type , name , name , null , null , null , null , false , false , false , false , false , null , 255 , 0 , 0 );
229+ }
230+
231+ public void addPrimaryKeyColumn (Class <?> type , String name , String comment ) {
232+ this .addPrimaryKeyColumn (type , name , name , null , null , null , comment , false , false , false , false , false , null , 255 , 0 , 0 );
218233 }
219234
220235 public void addPrimaryKeyColumn (Class <?> type , String name , GenerationType strategy ) {
221- this .addPrimaryKeyColumn (type , name , name , strategy , null , null , false , false , false , false , false , null , 255 , 0 , 0 );
236+ this .addPrimaryKeyColumn (type , name , name , strategy , null , null , null , false , false , false , false , false , null , 255 , 0 , 0 );
222237 }
223238
224239 public void addPrimaryKeyColumn (Class <?> type , String name , GenerationType strategy , String comment ) {
225- this .addPrimaryKeyColumn (type , name , name , strategy , null , comment , false , false , false , false , false , null , 255 , 0 , 0 );
240+ this .addPrimaryKeyColumn (type , name , name , strategy , null , null , comment , false , false , false , false , false , null , 255 , 0 , 0 );
241+ }
242+
243+ public void addPrimaryKeyColumn (Class <?> type , String name , Set <Class <? extends Annotation >> annotationClasses , String comment ) {
244+ this .addPrimaryKeyColumn (type , name , name , null , null , annotationClasses , comment , false , false , false , false , false , null , 255 , 0 , 0 );
226245 }
227246
228247 public void verify () {
0 commit comments