EclipseLink:如何避免嵌套左连接的附加sql查询

时间:2016-06-02 15:26:56

标签: java jpa eclipselink

我有以下实体:

@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。

1 个答案:

答案 0 :(得分:1)

JPA不允许嵌套的提取连接,但您可以使用特定于EclipseLink的left-join-fetch query hint告诉它您希望获取b.cs关系。见this answer