File tree Expand file tree Collapse file tree 1 file changed +19
-0
lines changed
hibernate-core/src/main/java/org/hibernate/metamodel/mapping Expand file tree Collapse file tree 1 file changed +19
-0
lines changed Original file line number Diff line number Diff line change 11
11
import org .hibernate .metamodel .model .domain .NavigableRole ;
12
12
import org .hibernate .metamodel .spi .MappingMetamodelImplementor ;
13
13
import org .hibernate .type .BasicType ;
14
+ import org .hibernate .type .descriptor .java .CharacterJavaType ;
14
15
import org .hibernate .type .descriptor .java .JavaType ;
16
+ import org .hibernate .type .descriptor .java .StringJavaType ;
15
17
16
18
import java .util .List ;
17
19
import java .util .Map ;
@@ -111,6 +113,23 @@ public DiscriminatorValueDetails getDetailsForDiscriminatorValue(Object value) {
111
113
return notNullMatch ;
112
114
}
113
115
116
+ if ( value .getClass ().isEnum () ) {
117
+ final Object enumValue ;
118
+ if ( getRelationalJavaType () instanceof StringJavaType ) {
119
+ enumValue = ( (Enum ) value ).name ();
120
+ }
121
+ else if ( getRelationalJavaType () instanceof CharacterJavaType ) {
122
+ enumValue = ( (Enum ) value ).name ().charAt ( 0 );
123
+ }
124
+ else {
125
+ enumValue = ( (Enum ) value ).ordinal ();
126
+ }
127
+ final DiscriminatorValueDetails enumMatch = discriminatorValueToEntityNameMap .get ( enumValue );
128
+ if ( enumMatch != null ) {
129
+ return enumMatch ;
130
+ }
131
+ }
132
+
114
133
throw new HibernateException ( "Unrecognized discriminator value: " + value );
115
134
}
116
135
You can’t perform that action at this time.
0 commit comments