我有两张 table 。如下考虑它们。人员与电话具有 OneToMany
关系。
create table Person(
id varchar,
name varchar
);
create table Phone(
id varchar,
name varchar,
person_id varchar,
UNIQUE KEY `unq` (`name`)
FOREIGN KEY (person_id) REFERENCES Person(id)
);
现在 Java 代码如下所示。
Person person = new Person();
Phone phone = new Phone();
phone.setPerson(person);
phoneRepository.save(phone);
查询在插入时忽略子表的唯一约束。它正在保存多个重复条目
什么似乎导致了问题?这是预期的行为吗?
最佳答案
您必须存储现有的 Person 实体
而不是实例化一个新实体
Person person = new Person();
尝试读取现有实体
Person existingPerson = personRepository.findOneByName(name);
并将现有实体设置为您的手机
phoneRepository.save(existingPerson)
关于java - 在 mysql hibernate 中保存子实体时忽略唯一约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52516326/