Несоответствие JPQL между Hibernate и EclipseLink
-
27-09-2019 - |
Вопрос
У меня есть следующий запрос, который работает под гибернатом, но не под затмением:
select o from Organisation o where o.code=:code and o.type=:type
Мне не ясно, почему это так, я надеялся, что кто-то еще может уточить для нас. Возвращенная ошибка:
Caused by: java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager:
Exception Description: Error compiling the query [select o from Organisation o where o.code=:code and o.type=:type]. Unknown entity type [Organisation].
Мы не сделали никаких других изменений, кроме переключения класса провайдера в файле Spistence.xml, чтобы указать, что мы используем EclipseLink.
Решение
Похоже, ECLIPSELink не сканирует часть ваших файлов / классов JAR / классов, которые содержат класс организации. Объявите его явно в сохранении .xml и посмотрите, что произойдет:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="YourPersUnit">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>foo.bar.Organisation</class>
</persistence-unit>
</persistence>
Не связан с StackOverflow