#java #hibernate #jakarta-ee #hql
#java #переход в спящий режим #джакарта-ee #hql
Вопрос:
У меня есть свойство коллекции классов с @ElementCollection
и @Enumerated(EnumType.ORDINAL)
Я пытаюсь выполнить инструкцию in для этой коллекции, однако в сгенерированном sql я получаю это -> {non-qualified-property-ref} in (?)
Возможно, я делаю что-то неправильно при создании самого hql. Может ли это быть потому, что элементы на самом деле являются значениями enum?
Спасибо, Питер
Ответ №1:
Вы должны быть в состоянии сделать это, используя выражение «in elements», согласно документации ( http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html ):
select mother from Cat as mother, Cat as kit
where kit in elements(foo.kittens)
Однако в режиме гибернации есть открытая ошибка… это работает не так, как можно было бы ожидать для значений enum, см.:https://hibernate.onjira.com/browse/HHH-5159 для обхода.