如何在外部实体上生成查询dsl q类?

vhmi4jdf  于 2021-07-07  发布在  Java
关注(0)|答案(2)|浏览(506)

我利用一个 @Entity 从commons库初始化:

  1. @Entity
  2. public class Person {
  3. @Id
  4. private long id;
  5. private String firstname;
  6. @NotNull
  7. private String lastname;
  8. }

在impl应用程序中,我想生成一个 QPerson querydsl实体。但是怎么做呢?因为我无法控制公共图书馆,所以我不能简单地添加 @QueryEntity querydsl处理器的注解。

sqyvllje

sqyvllje1#

在我们的项目中,我们不喜欢生成一些源代码。因此,我们禁用了代码生成并手动编写查询dsl的q文件。我们查看生成的文件,只需按照生成文件的方式编写它们。但是请记住,q文件必须与为其编写的实体文件位于同一个包中

myzjeezk

myzjeezk2#

我找到了解决办法。但我不知道这是不是正确的方式,所以我还是很高兴你的意见。
创建 package-info 在实施项目的某处,如下所示:

  1. @QueryEntities(value = {Person.class})
  2. package my.impl.project

奇怪的是:现在所有来自commons项目的实体类都被生成了。因此我限制了maven的路径:

  1. <plugin>
  2. <groupId>com.mysema.maven</groupId>
  3. <artifactId>apt-maven-plugin</artifactId>
  4. <version>${apt-maven-plugin.version}</version>
  5. <executions>
  6. <execution>
  7. <phase>generate-sources</phase>
  8. <goals>
  9. <goal>process</goal>
  10. </goals>
  11. <configuration>
  12. <outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
  13. <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
  14. <options>
  15. <querydsl.includedPackages>org.common.domain.person</querydsl.includedPackages>
  16. </options>
  17. </configuration>
  18. </execution>
  19. </executions>
  20. <dependencies>
  21. <dependency>
  22. <groupId>com.querydsl</groupId>
  23. <artifactId>querydsl-apt</artifactId>
  24. <version>${querydsl.version}</version>
  25. </dependency>
  26. </dependencies>
  27. </plugin>
展开查看全部

相关问题