2017-05-08 91 views
1

在双向关系beetwen两个实体(一个ControlTable由ControlSteps组成),我只是通过不同的方式尝试通过了解它的集合ControlSteps来请求一个ControlTable。我知道不建议有这种双向映射,但我需要知道父母的每个孩子,以及每个孩子的父母。休眠选择与双向映射

我配置它像这样在ControlTable类:

@OneToMany(mappedBy = "controlTable",cascade = CascadeType.ALL, fetch=FetchType.EAGER) 
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) 
@Fetch(FetchMode.JOIN) 
private Set<ControlStep> controlSteps; 

而且像这样ControlStep类:

@ManyToOne(optional=false, fetch=FetchType.LAZY) 
@JoinColumn(name="ctrl_table_id", referencedColumnName = "id") 
    private ControlTable controlTable; 

当我使用默认的JPA查询的findAll(),它不工作得到ControlTable的列表(或者只有一个),因为它递归地请求父级的父级(无限响应)。 另一种方法是,将所有内容放在LAZY加载中,用HQL查询获取孩子,但结果是一样的。

对于如何在没有问题的情况下获得这些集合有什么想法吗?

非常感谢您提前

+0

FYI JPA的API有没有这样的 “的findAll”。 Spring Data JPA(!= JPA API)确实有这样的方法 –

+0

你是对的,我错过了提到“Spring数据”。对不起;) – gomesito

回答