在Hibernate中,为什么Set是表示多值关联的推荐方法

时间:2010-08-02 08:44:41

标签: java hibernate orm

从这里采取:http://docs.jboss.org/hibernate/stable/core/reference/en/html/persistent-classes.html#persistent-classes-equalshashcode

我倾向于使用List,因为Criteria会返回List,因此我的代码更清晰,因为我不需要进行转换。

我这样做..

@OneToMany(cascade= {CascadeType.PERSIST, CascadeType.REMOVE}, mappedBy="parent")
@Column(name="PARENT_ID")
public List<Menu> getChildMenus() {
    return childMenus;
}

如果我在那里使用Set,在我的DAO的某处,我必须先将Criteria返回的结果转换为Set

我想知道使用List他们的方式可能会产生什么影响。

1 个答案:

答案 0 :(得分:5)

使用Set作为子表具有主键,使得子项只能在父项中一次。如果使用列表,列表中可能存在重复的子项,并且无法将其保存到数据库中。