当我尝试运行这样的查询时:
QA A = QA.a;
QB B = QB.b;
...
from(A)
.leftJoin(B).with(B.name.eq(A.nameSomething));
Run Code Online (Sandbox Code Playgroud)
(A和B实体不相关)我总是收到此错误:
Caused by: org.hibernate.hql.ast.QuerySyntaxException: Path expected for join!
Run Code Online (Sandbox Code Playgroud)
我希望能够使用querydsl离开加入不相关的实体.有可能吗?或者唯一的方法是编写本机Oracle查询?
Querydsl JPA无法加入不相关的实体.Querydsl JPA在内部使用JPQL并继承了这个限制.
小智 1
假设您指的是 JPA Criteria。innerJoin、leftOuterJoin 用于连接关系,因为这是在 OO 系统中连接的唯一逻辑事物。
相反,如果您想比较entity.fieldwith的相等性entity2.field(其中数据库中不存在 FK 并且类中不存在关系),则可以在 WHERE 子句中执行此操作,就像任何过滤器一样。
显然 QueryDSL 有它自己的语法/规则,所以如果引用它,那么这不是 JPA
| 归档时间: |
|
| 查看次数: |
4702 次 |
| 最近记录: |