Hibernate JPA onetomany映射不同值

Hibernate JPA onetomany映射不同值,hibernate,jpa,Hibernate,Jpa,我的应用程序中有两个遗留表(Person、Car)。其中一个是个人 @实体 人 @独身癖 收集车 现在car表有三列(id、carid、personid)。理想情况下,carid应该是主键(假设一个人只有一辆车)。但在我的旧表中,id是主键。因此,为同一personid和carid(需要修复的错误)向表中插入了多条记录 但是我的问题是,当我调用person.getCars()时,有没有一种方法可以为一个人检索到distinct(personid+carid)?基本上,我不希望person.get

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

@实体 人

@独身癖 收集车

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

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

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


JPA provider-hibernate

您可以将cars集合设置为一个
集合,并确保Car具有良好的
equals()
hashCode()
方法,这样集合就不会包含重复的cars