@Entity
public class Person {
@ElementCollection
@CollectionTable(name = "PERSON_LOCATIONS", joinColumns = @JoinColumn(name = "PERSON_ID"))
private List<Location> locations;
[...]
}
@Embeddable
public class Location {
[...]
}
给定以下类结构,当我尝试将一个新位置添加到Person的位置列表中时,它总是导致以下SQL查询:
DELETE FROM PERSON_LOCATIONS WHERE PERSON_ID = :idOfPerson
并且
A lotsa' inserts into the PERSON_LOCATIONS table
Hibernate(3.5.x / JPA 2)会删除给定 Person 的所有关联记录,并重新插入所有先前的记录以及新记录。
我认为 Location 上的 equals/hashcode 方法可以解决这个问题,但它并没有改变任何东西。
欢迎提供任何提示!
final
,而Hibernate默默地什么都没做。我去掉了final
关键字,它开始正常更新和删除了。 - Adamfetch = FetchType.EAGER
也会出现这种情况。@OrderColumn似乎没有任何效果。 - lightswitch05