@@ -159,9 +159,19 @@ class MyDate2 extends MyDate1 {
159159
160160 interface SomeInterface {
161161 }
162+ interface ExtendingSomeInterface extends SomeInterface {
163+ }
164+ interface NoTypeHandlerInterface {
165+ }
162166
163167 enum SomeEnum implements SomeInterface {
164168 }
169+ enum ExtendingSomeEnum implements ExtendingSomeInterface {
170+ }
171+ enum ImplementingMultiInterfaceSomeEnum implements NoTypeHandlerInterface , ExtendingSomeInterface {
172+ }
173+ enum NoTypeHandlerInterfaceEnum implements NoTypeHandlerInterface {
174+ }
165175
166176 class SomeClass implements SomeInterface {
167177 }
@@ -190,6 +200,10 @@ public E getNullableResult(CallableStatement cs, int columnIndex) throws SQLExce
190200 public void demoTypeHandlerForSuperInterface () {
191201 typeHandlerRegistry .register (SomeInterfaceTypeHandler .class );
192202 assertNull ("Registering interface works only for enums." , typeHandlerRegistry .getTypeHandler (SomeClass .class ));
203+ assertSame ("When type handler for interface is not exist, apply default enum type handler." ,
204+ EnumTypeHandler .class , typeHandlerRegistry .getTypeHandler (NoTypeHandlerInterfaceEnum .class ).getClass ());
193205 assertSame (SomeInterfaceTypeHandler .class , typeHandlerRegistry .getTypeHandler (SomeEnum .class ).getClass ());
206+ assertSame (SomeInterfaceTypeHandler .class , typeHandlerRegistry .getTypeHandler (ExtendingSomeEnum .class ).getClass ());
207+ assertSame (SomeInterfaceTypeHandler .class , typeHandlerRegistry .getTypeHandler (ImplementingMultiInterfaceSomeEnum .class ).getClass ());
194208 }
195209}
0 commit comments