Skip to content

Commit 11ef490

Browse files
cigalymbladel
authored andcommitted
HHH-19195 Discriminator values should be hierarchically sorted.
While collecting they are inserted in proper order, but TreeMap will not preserver ordering, but sort them alphabetically by names. To keep values order LinkedHashMap should be used instead of TreeMap.
1 parent 3d5c6b9 commit 11ef490

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

hibernate-core/src/main/java/org/hibernate/boot/model/internal/EmbeddableBinder.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,10 @@
5959
import java.lang.reflect.Type;
6060
import java.util.ArrayList;
6161
import java.util.HashMap;
62+
import java.util.LinkedHashMap;
6263
import java.util.List;
6364
import java.util.Locale;
6465
import java.util.Map;
65-
import java.util.TreeMap;
6666

6767
import static org.hibernate.boot.model.internal.AnnotatedDiscriminatorColumn.DEFAULT_DISCRIMINATOR_COLUMN_NAME;
6868
import static org.hibernate.boot.model.internal.AnnotatedDiscriminatorColumn.buildDiscriminatorColumn;
@@ -516,7 +516,7 @@ static Component fillEmbeddable(
516516
final BasicType<?> discriminatorType = (BasicType<?>) component.getDiscriminator().getType();
517517
// Discriminator values are used to construct the embeddable domain
518518
// type hierarchy so order of processing is important
519-
final Map<Object, String> discriminatorValues = new TreeMap<>();
519+
final Map<Object, String> discriminatorValues = new LinkedHashMap<>();
520520
collectDiscriminatorValue( returnedClassOrElement, discriminatorType, discriminatorValues );
521521
collectSubclassElements(
522522
propertyAccessor,

0 commit comments

Comments
 (0)