【发布时间】:2019-05-23 04:25:20
【问题描述】:
QueryDSL 不能与 JPA 一起正常工作以进行左连接。
我正在使用 queryDSL 版本 4.2.1 并将响应直接映射到 javax.persistence 实体。
对于左连接/右连接,连接条件不起作用。当entity1.getEntity2() 被调用时,它会获取每个实体,而不考虑加入条件(这里是 name = "testName")。
有没有其他适用于这种情况的方法来映射JOIN表之后的结果?
JPAQuery<Entity1> query = new JPAQuery<>(entityManager);
query.from(table1);
query.leftJoin(table2).on(table2.id.eq(table1.id).and(table2.name.eq("testName"));
List<Entity1> list = query.fetch();
@Entity
public class Entity1{
private Integer id;
@OneToMany(mappedBy = "entity1", fetch = FetchType.LAZY)
private List<Entity2> entity2;
}
【问题讨论】: