Я работаю проект, который использует перечисления в качестве столбцов в базу данныхHibernate рода основан на перечислении
public enum MyEnum{
a1(1,"act1"),
a2(2,"act2"),
a3(3,"act3"),
b1(4,"bob1"),
c1(10,"cake1"),
c2(11,"cake2"),
}
@Entity
public class MyEntity{
..
private Integer myEnumIntValue;
...
}
(Примечание: myEnumIntValue не отображается, как перечисление в сущности)
У меня есть спящий режим запрос на запрос MyEntity. Запрос заказывает результат, основанный на Int значения перечисления
createCriteria(MyEntity.class).addOrder("myEnumIntValue");
Это было все хорошо, пока перечисление не было изменено на
Public enum MyEnum{
a1(1,"act1"),
a2(2,"act2"),
a3(3,"act3"),
a4(7,"act4"),
b1(4,"bob1"),
c1(10,"cake1"),
c2(11,"cake2")
}
Теперь становится проблемой, потому что порядок результата я я получаю (a1,a2,a3,**b1,a4**,c1,c2)
, но сортировка Субъектов должна быть (a1,a2,a3,**a4,b1**,c1,c2)
Что такое стратегия, которую я могу использовать для решения этой проблемы?
Итак, вам нужен «запрос на спящий режим», который заказывает запрос на основе строкового значения перечисления? – Narmer
enum сохраняется как целое число в базе данных, поэтому запрос упорядочен на основе значения Integer – user3308224
Тогда ваше единственное решение - это то, что я написал, на самом деле вы находитесь в '' не можете манипулировать частью запроса ''. – Narmer