1

我有两个受一对二一关联约束的实体: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。为什么合并不起作用,但保存工作正常?据我了解,合并具有比保存更广泛的功能。

4

0 回答 0