从jar创建实体的(querydsl)元模型

时间:2014-06-11 08:31:31

标签: java jpa-2.0 querydsl

我在从我的项目的依赖项中包含的jar中生成的实体生成querydsl元模型(即Q类)时遇到问题。

类(BaseEntity)是我的大多数实体的抽象基类(使用@MappedSuperclass注释),并且出于项目原因和对其他项目的依赖性,这个基类必须在一个单独的jar中。

当我现在将此jar包含为包含我的非抽象实体的项目的依赖项并尝试生成元模型(使用com.mysema.maven:apt-maven-plugin)时,它无法识别BaseEntity抱怨“找不到符号”QBaseEntity。

我通过让maven将源文件(即BaseEntity.java)解压缩到依赖项目的另一个源文件夹来解决这个问题,但这有点难看,因为我必须始终记得在发布时更改版本号还有我的pom中的源依赖,它也不是很直观。

所以我的问题是:

  1. 我可以让querydsl以某种方式从jar生成类的元模型而不将源代码复制到依赖项目吗?
  2. 如果这是不可能的:我可以在.class文件上而不是在.java源文件上运行querydsl元模型生成(我不需要源依赖项,只能从中提取.class文件现有的依赖)
  3. 非常感谢任何帮助,谢谢

2 个答案:

答案 0 :(得分:2)

您可以使用QueryEntities注释从主要源项目中引用BaseEntity。建议使用包级注释。

答案 1 :(得分:-1)

您应该添加-info.java文件 在您的包裹中

@QueryEntities(value = {BaseEntity.class})
package xxxx.xxxx.xxx;

import com.querydsl.core.annotations.QueryEntities;
import xxx.xxxx.BaseEntity;