我有两个受一对二一关联约束的实体:Person <-> Address。同时地址PK为Person's PK的FK。所以 Address 从 Person 表中获取它的 PK。
我的代码:
newPerson.setId(10); //in this case I must to set id manually
newAddress.setId(10); //in this case I must to set id manually
newPerson.set(newAdress);
newAddress.set(newPerson);
newPerson = (Person) session.merge(newPerson); //EXCEPTION! But session.saveOrUpdate(profile) works fine. Why?
但我对 Person 和 Address 实体使用了 sequence_generator!
它抛出:
IdentifierGenerationException:试图从空的一对一属性分配 id
问题:
是什么原因?据我了解 - Hibernate 不接受我的手动 ID。为什么合并不起作用,但保存工作正常?据我了解,合并具有比保存更广泛的功能。