JPA onetomany映射不同的值

时间:2013-07-29 12:26:53

标签: hibernate jpa

我的应用程序中有两个遗留表(Person,Car)。其中一个是人。

@Entity 人

@OneToMany 收集汽车。

现在汽车表有三列(id,carid,personid)。理想情况下,carid应该是主键(假设一个人只有一辆车)。但在我的遗留表中,id是主键。因此,为同一个personid和carid插入了多个记录(一个需要修复的bug)

但我的问题是,有一种方法可以在我调用person.getCars()时为一个人检索不同的(personid + carid)?基本上我不希望我的person.getCars()集合中有重复的条目

我正在使用jpa2命名查询。 从Person p中选择p; p.getCars()。size() - 检索汽车列表(这也返回重复项)

JPA提供程序 - hibernate

1 个答案:

答案 0 :(得分:0)

您可以将汽车收藏设为Set,并确保汽车拥有良好的equals()hashCode()方法,因此该套装不会包含重复的汽车。