Skip to content

Commit 63af87f

Browse files
committed
增加@keyproperty,暂时先不提供使用。
1 parent b749e32 commit 63af87f

File tree

3 files changed

+33
-1
lines changed

3 files changed

+33
-1
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package tk.mybatis.mapper.annotation;
2+
3+
import java.lang.annotation.ElementType;
4+
import java.lang.annotation.Retention;
5+
import java.lang.annotation.RetentionPolicy;
6+
import java.lang.annotation.Target;
7+
8+
/**
9+
* keyProperty注解,标记的字段会使用JDBC方式回写自增结果
10+
*
11+
* @author liuzh
12+
*/
13+
@Target(ElementType.FIELD)
14+
@Retention(RetentionPolicy.RUNTIME)
15+
public @interface KeyProperty {
16+
}

src/main/java/tk/mybatis/mapper/entity/EntityColumn.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public class EntityColumn {
1414
private boolean id = false;
1515
private boolean uuid = false;
1616
private boolean identity = false;
17+
private boolean key = false;
1718
private String generator;
1819
private String orderBy;
1920

@@ -104,6 +105,14 @@ public void setOrderBy(String orderBy) {
104105
this.orderBy = orderBy;
105106
}
106107

108+
public boolean isKey() {
109+
return key;
110+
}
111+
112+
public void setKey(boolean key) {
113+
this.key = key;
114+
}
115+
107116
@Override
108117
public boolean equals(Object o) {
109118
if (this == o) return true;

src/main/java/tk/mybatis/mapper/mapperhelper/EntityHelper.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
package tk.mybatis.mapper.mapperhelper;
2626

27+
import tk.mybatis.mapper.annotation.KeyProperty;
2728
import tk.mybatis.mapper.annotation.NameStyle;
2829
import tk.mybatis.mapper.code.IdentityDialect;
2930
import tk.mybatis.mapper.code.Style;
@@ -209,10 +210,12 @@ public static synchronized void initEntityNameMap(Class<?> entityClass, Style st
209210
if (field.isAnnotationPresent(Transient.class)) {
210211
continue;
211212
}
213+
//Id
212214
EntityColumn entityColumn = new EntityColumn(entityTable);
213215
if (field.isAnnotationPresent(Id.class)) {
214216
entityColumn.setId(true);
215217
}
218+
//Column
216219
String columnName = null;
217220
if (field.isAnnotationPresent(Column.class)) {
218221
Column column = field.getAnnotation(Column.class);
@@ -224,7 +227,7 @@ public static synchronized void initEntityNameMap(Class<?> entityClass, Style st
224227
entityColumn.setProperty(field.getName());
225228
entityColumn.setColumn(columnName);
226229
entityColumn.setJavaType(field.getType());
227-
//order by
230+
//OrderBy
228231
if (field.isAnnotationPresent(OrderBy.class)) {
229232
OrderBy orderBy = field.getAnnotation(OrderBy.class);
230233
if (orderBy.value().equals("")) {
@@ -233,6 +236,10 @@ public static synchronized void initEntityNameMap(Class<?> entityClass, Style st
233236
entityColumn.setOrderBy(orderBy.value());
234237
}
235238
}
239+
//KeyProperty
240+
if (field.isAnnotationPresent(KeyProperty.class)) {
241+
entityColumn.setKey(true);
242+
}
236243
//主键策略 - Oracle序列,MySql自动增长,UUID
237244
if (field.isAnnotationPresent(SequenceGenerator.class)) {
238245
SequenceGenerator sequenceGenerator = field.getAnnotation(SequenceGenerator.class);

0 commit comments

Comments
 (0)