我有两个实体以一对一的方式为界:Person< - >地址。地址PK同时是人的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?
但我将sequence_generator用于Person和Address实体!
它抛出:
IdentifierGenerationException:尝试从null一对一属性中分配id
问题:
是什么原因?据我所知 - Hibernate不接受我的手动ID。 为什么合并不起作用,但保存工作正常?据我所知,merge具有比save更广泛的功能。