如何使用@QueryInit初始化QueryDSL查询中嵌入对象的属性的路径?

问题描述

根据QueryDSL文档,(http://www.querydsl.com/static/querydsl/4.0.8/reference/html_single/#d0e2250)仅在生成的Q类中初始化路径的前两个级别,因此,如果对象A在{{ {1}},您不能做诸如在查询中进行查询这样的操作来从B内部访问A的ID。它们具有@Entity注释,可用于那些我们需要更深层路径但文档非常简短,我不明白其用法。现在,当我尝试在应用程序中运行查询时,我收到“无效路径”异常。是否有人使用@JoinColumn解决类似于我的问题?

查询where子句(即QueryDSL中的子句)类似于@QueryInit,其中a被“嵌入”在b内

我看到的异常是:

@QueryInit

我试图将其“翻译”为QueryDSL的查询看起来像这样:

a.id.eq(b.a.id)

解决方法

谓词最终只是:

a.amount.loe(
JPAExpressions.select(b.amount.sum()).from(b).where(a.id.eq(b.a.id)))
)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...