В настоящее время мой проект выглядит следующим образом:Как использовать Hibernate/QueryDSL объекты из Maven подпроекта
Root
-- Common (Contains Entity classes)
-- Processor (Refers Common)
Общие и контроллер оба Maven проект (каждый развернутый в отдельном экземпляре Jetty - распространенным является пользователем облицовочным сервер приставок и процессор - это фоновый демон, который в настоящее время работает на причальном сервере, так как он предназначен для ответа на некоторые внутренние HTTP-запросы тоже). Корень содержит родительский pom как для Common, так и для процессора
Когда я выполняю операции, связанные с DB в Common, он работает очень хорошо.
Но когда я называю те же функции от процессора, он выдает ошибку:
java.lang.IllegalArgumentException:
org.hibernate.hql.internal.ast.QuerySyntaxException:
User is not mapped [select users from User users fetch all properties]
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1679)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1602)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1608)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:294)
at com.mysema.query.jpa.impl.AbstractJPAQuery.createQuery(AbstractJPAQuery.java:129)
at com.mysema.query.jpa.impl.AbstractJPAQuery.createQuery(AbstractJPAQuery.java:96)
at com.mysema.query.jpa.impl.AbstractJPAQuery.list(AbstractJPAQuery.java:248)
at com.myproject.common.persistence.UserManager.selectStar(UserManager.java:110)
UserManager.selectStar() работает отлично от общего, хотя. Оба Common и Processor имеют плагин query-dsl для генерации Q-файлов. И Common, и процессор имеют файл META-INF/persistence.xml.
UserManager конкретизирует EntityManagerFactory как:
emf = Persistence.createEntityManagerFactory("world");
где "мир" это имя моей БД.
./common/src/main/resources/META-INF/persistence.xml
./processor/src/main/resources/META-INF/persistence.xml
Процессор имеет зависимость от общего как:
<!-- language: lang-xml -->
<dependency>
<groupId>com.mock</groupId>
<artifactId>common</artifactId>
</dependency>
Все версии зависимостей также управляются в <dependencyManagement> разделе корневого POM в.
Возможный дубликат [Невозможно вызвать Hibernate/QueryDSL из другого подпроекта maven] (http://stackoverflow.com/questions/32857422/unable-to-call-hibernate-querydsl-from-another-maven-subproject) – user2250246