目前我的項目是這樣的:如何使用Hibernate/QueryDSL實體從一個maven子項目
Root
-- Common (Contains Entity classes)
-- Processor (Refers Common)
常見和控制器都是Maven項目(在自己的碼頭情況下,每個部署 - 普通是面向用戶的jetty服務器和處理器是當前在jetty服務器上運行的後端守護程序,因爲它也用於響應某些內部http請求)。 Root包含共同和處理器的父POM
當我在Common中執行DB相關的操作時,它工作得很好。
但是,當我調用相同的功能,從處理器,它提供了一個錯誤:
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和Processor都有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>
所有依賴的版本也正在根POM的<dependencyManagement>部所管理。
可能的重複[無法從另一個maven子項目調用Hibernate/QueryDSL](http://stackoverflow.com/questions/32857422/unable-to-call-hibernate-querydsl-from-another-maven-subproject) – user2250246