JPA:自动获取子对象

时间:2018-04-03 12:21:24

标签: java jpa fetch criteria

我正在使用@OneToMany功能,并设置了FetchType.EAGER。但JPA(通过EclipseLink)继续为列表中的每个子对象发出一个子请求。 我真的不明白为什么。 我遵循了很多我发现的线程,但是无法在一个请求中进行选择。

此外,我使用CriteriaBuilder,CriteriaQuery和一些Predicate来检索我的对象。这可能是个问题? 无论如何,所有这些过滤器仅用于顶级lvl类。我仍然希望得到较低的一个。

我的实体看起来像:

@Entity
@Table(name = "mainTable")
public class MainTable extends SqlEntity {

    @OneToMany(fetch = FetchType.EAGER)
    private List<MainLocation> locations = new ArrayList<MainLocation>();
    ...
}

@Entity
@Table(name = "mainLocation")
public class MainLocation extends SqlEntity {

    @OneToMany(fetch = FetchType.EAGER)
    private List<MainDetail> details = new ArrayList<MainDetail>();
    ...
}

@Entity
@Table(name = "mainDetail")
public class MainDetail extends SqlEntity {
    ...
}

0 个答案:

没有答案