Skip to content

Commit a1650fb

Browse files
committed
Allow TypeHandler for Enum on annotation configuration #444
1 parent 4038ee6 commit a1650fb

File tree

4 files changed

+14
-6
lines changed

4 files changed

+14
-6
lines changed

src/main/java/org/apache/ibatis/annotations/Arg.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838

3939
JdbcType jdbcType() default JdbcType.UNDEFINED;
4040

41-
Class<? extends TypeHandler<?>> typeHandler() default UnknownTypeHandler.class;
41+
Class<? extends TypeHandler> typeHandler() default UnknownTypeHandler.class;
4242

4343
String select() default "";
4444

src/main/java/org/apache/ibatis/annotations/Result.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040

4141
JdbcType jdbcType() default JdbcType.UNDEFINED;
4242

43-
Class<? extends TypeHandler<?>> typeHandler() default UnknownTypeHandler.class;
43+
Class<? extends TypeHandler> typeHandler() default UnknownTypeHandler.class;
4444

4545
One one() default @One;
4646

src/main/java/org/apache/ibatis/annotations/TypeDiscriminator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
JdbcType jdbcType() default JdbcType.UNDEFINED;
3838

39-
Class<? extends TypeHandler<?>> typeHandler() default UnknownTypeHandler.class;
39+
Class<? extends TypeHandler> typeHandler() default UnknownTypeHandler.class;
4040

4141
Case[] cases();
4242
}

src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationBuilder.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,9 @@ private Discriminator applyDiscriminator(String resultMapId, Class<?> resultType
240240
String column = discriminator.column();
241241
Class<?> javaType = discriminator.javaType() == void.class ? String.class : discriminator.javaType();
242242
JdbcType jdbcType = discriminator.jdbcType() == JdbcType.UNDEFINED ? null : discriminator.jdbcType();
243-
Class<? extends TypeHandler<?>> typeHandler = discriminator.typeHandler() == UnknownTypeHandler.class ? null : discriminator.typeHandler();
243+
@SuppressWarnings("unchecked")
244+
Class<? extends TypeHandler<?>> typeHandler = (Class<? extends TypeHandler<?>>)
245+
(discriminator.typeHandler() == UnknownTypeHandler.class ? null : discriminator.typeHandler());
244246
Case[] cases = discriminator.cases();
245247
Map<String, String> discriminatorMap = new HashMap<String, String>();
246248
for (Case c : cases) {
@@ -491,6 +493,9 @@ private void applyResults(Result[] results, Class<?> resultType, List<ResultMapp
491493
if (result.id()) {
492494
flags.add(ResultFlag.ID);
493495
}
496+
@SuppressWarnings("unchecked")
497+
Class<? extends TypeHandler<?>> typeHandler = (Class<? extends TypeHandler<?>>)
498+
((result.typeHandler() == UnknownTypeHandler.class) ? null : result.typeHandler());
494499
ResultMapping resultMapping = assistant.buildResultMapping(
495500
resultType,
496501
nullOrEmpty(result.property()),
@@ -501,7 +506,7 @@ private void applyResults(Result[] results, Class<?> resultType, List<ResultMapp
501506
null,
502507
null,
503508
null,
504-
result.typeHandler() == UnknownTypeHandler.class ? null : result.typeHandler(),
509+
typeHandler,
505510
flags,
506511
null,
507512
null,
@@ -545,6 +550,9 @@ private void applyConstructorArgs(Arg[] args, Class<?> resultType, List<ResultMa
545550
if (arg.id()) {
546551
flags.add(ResultFlag.ID);
547552
}
553+
@SuppressWarnings("unchecked")
554+
Class<? extends TypeHandler<?>> typeHandler = (Class<? extends TypeHandler<?>>)
555+
(arg.typeHandler() == UnknownTypeHandler.class ? null : arg.typeHandler());
548556
ResultMapping resultMapping = assistant.buildResultMapping(
549557
resultType,
550558
null,
@@ -555,7 +563,7 @@ private void applyConstructorArgs(Arg[] args, Class<?> resultType, List<ResultMa
555563
nullOrEmpty(arg.resultMap()),
556564
null,
557565
null,
558-
arg.typeHandler() == UnknownTypeHandler.class ? null : arg.typeHandler(),
566+
typeHandler,
559567
flags,
560568
null,
561569
null,

0 commit comments

Comments
 (0)