使用queryDSL可以吗?

时间:2017-03-23 05:36:36

标签: jpql querydsl

有两个实体A和B涉及一对多。

enter image description here

我想提取" B_2"在那里有父母(" A_1")和孩子(" B_1"," B_2"," B_3")。所以我尝试下面的代码。

from(QB.b).join(QB.b.a, QA.a).fetch().join(QA.a.bList).fetch().where(QB.b.name.eq("B_2"));

但结果B.a.bList只是代理对象。并且它发生在N + 1问题上。 有人帮忙吗?

1 个答案:

答案 0 :(得分:1)

出于本示例的目的,让我们为实体A a和实体B b调用Querydsl查询类型。

.from(a)
.innerJoin(b)
.on(a.a_id).eq(b.a_id)
.where(b.name.eq("B_2"))
.fetch();