eager fetch在hibernate中执行left join

时间:2012-05-01 15:31:42

标签: java hibernate

我正在定义一个实体myParent,它除了一件事外它工作正常。它具有以下定义:

@OneToMany(mappedBy = "myParent", cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
private List<Child> children;

这会导致左或右连接被执行,所以如果有两个孩子,我会得到两个父母。我不希望我只想要一个父母和两个孩子。

我可以将fetchtype更改为lazy但我真的不想那样......?

当我选择所有父项时,列表中包含重复的父项,我不想要重复项。

1 个答案:

答案 0 :(得分:1)

您应该使用DISTINCT_ROOT_ENTITY ResultTransformer

这意味着每行结果都是根实体的不同实例。