【发布时间】:2015-09-29 05:50:31
【问题描述】:
目前我的项目如下:
Root
-- Common (Contains Entity classes)
-- Processor (Refers Common)
Common 和 Controller 都是 maven 项目(每个都部署在自己的 Jetty 实例中 - common 是面向用户的 jetty 服务器,处理器是后端守护程序,目前也在 jetty 服务器中运行,因为它旨在响应一些内部 http - 也有要求)。 Root 包含 Common 和 Processor 的父 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");
其中“world”是我的数据库的名称。
./common/src/main/resources/META-INF/persistence.xml
./processor/src/main/resources/META-INF/persistence.xml
Processor 依赖于 common as:
<!-- language: lang-xml -->
<dependency>
<groupId>com.mock</groupId>
<artifactId>common</artifactId>
</dependency>
所有依赖版本也在根 pom 的
【问题讨论】:
标签: java hibernate maven querydsl