我有以下实体:
@Entity
class A{
@OneToMany
private List<B> bs;
...
}
@Entity
class B{
@OneToMany
private List<C> cs;
...
}
@Entity
class C{
...
}
所以我做了以下查询:
SELECT a FROM A a LEFT JOIN FETCH a.bs b LEFT JOIN b.cs
此代码有效,这是在一个连接查询中从数据库中读取A和B的唯一问题,但是对于读取C(LEFT JOIN b.cs),执行单独的sql查询以仅读取C实体。如何在一个SQL查询中读取A,B,C。
答案 0 :(得分:1)
JPA不允许嵌套的提取连接,但您可以使用特定于EclipseLink的left-join-fetch query hint告诉它您希望获取b.cs关系。见this answer