【发布时间】:2018-06-03 01:36:06
【问题描述】:
QueryDSL 看起来不错,但是有没有办法从现有的 JPA 模型生成“S”类用于 SQL 查询?
我看到您可以使用 com.querydsl.apt.jpa.JPAAnnotationProcessor 来生成“Q”类,并且您必须连接到数据库才能生成“S”类。但是由于所有元数据信息(表、列)都可以在 JPA 实体中找到,这应该足以生成“S”类,不是吗?
这样做的目的:不依赖于不可靠的数据库模式......并在 JPA 不可用的辅助项目中使用 QueryDSL。
谢谢。
【问题讨论】:
-
为什么需要 S 类?
-
我目前拥有的:Java 中的 JPA 项目(J2EE、应用服务器、等等等等),以及 Spark 中的一些 scala 作业。我想在 Spark 作业中用 SQL 提出一些非常小的请求,因此我不想在其中采用 JPA 实现。我认为我不能在“Q”类上使用 querydsl-sql。但是这个“Q”类,在 Java 项目中,应该被认为是一个参考。因此,从 JPA 模型或 Q 类生成“S”类会很棒。
-
我明白了。不,这不起作用,因为它不适用于此用例。为什么你有“不可靠”的数据库架构?
-
好的,我明白了。问题是这是一个正在进行的项目,有很多修改(而 JPA 项目是主导模式修改的项目)。而且我想避免将密码放在 pom.xml 中只是为了创建模型。但我想我会这样做,并在提交之前删除密码。
-
你也应该看看jooq.org
标签: querydsl