У меня есть проблема с JPA NamedQuery в сочетании с AttributeConverter.JPA NamedQuery с объектом в выражении WHERE, которое преобразуется с использованием AttributeConverter
Итак, у меня есть объект с полем xyz типа XYZ, который преобразуется с использованием AttributeConverter<XYZ, String>
, поэтому значение хранится как VARCHAR в базе данных. Это хорошо работает. Но я не совсем уверен, о том, как запросить Entity.xyz с помощью NamedQuery:
@NamedQuery(name="Entity.testQuery", query="SELECT e FROM Entity e WHERE e.xyz=:xyz
Если я пытаюсь его таким образом, Hibernate сбои во время запуска. Так что это неправильно. Есть ли способ сообщить Hibernate сравнить значение «неотвернутого» (т. Е. String), например WHERE e.xyz=:xyzAsString
?
С наилучшими пожеланиями Jonas
EDIT: Hibernate аварии, я думаю, потому что он пытается запросить e.xyz как JOIN с лица XYZ, который не существует. Так что, может быть, это ошибка (я на WildFly 9.2, которая использует Hibernate 4.3)
Зачем ему падать? Покажите исключение и сообщения, которые вы получаете, так как кажется странным не сказать вам ничего. Запрос содержит параметр, поэтому ему нужно будет только тип при выполнении запроса. – Chris