我有两个桌子。如下考虑它们。人与手机有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);
查询在插入时忽略子表上的唯一约束。它正在保存多个重复的条目
什么似乎引起了问题?这是预期的行为吗?
答案 0 :(得分:0)
您必须存储现有的Person实体
代替实例化新实体
Person person = new Person();
尝试读取现有实体
Person existingPerson = personRepository.findOneByName(name);
并将现有实体设置为您的手机
phoneRepository.save(existingPerson)