【发布时间】:2019-05-06 08:07:24
【问题描述】:
Spring crud repository save() 方法如果 ID 为 null 则执行 Insert 操作,否则执行 Update 操作。我有以下实体 bean -
Student {
@Id integer studentId;
....
@OneToMany Set<Project> projects;
@OneToMany Set<Subject> subjects;
}
Project {
@Id integer projectId;
....
@ManyToOne Student student;
}
Subject {
@Id integer subjectId;
....
@ManyToOne Student student;
}
如果我使用 spring crud 存储库对项目 p 的一个实例执行 save() 操作,它会尝试对 p.student 已关联的所有主题执行插入。结果,我得到一个主键约束冲突错误。
Spring jpa 应该只插入项目,而不是整个 Student 树和它的主题集。
有什么办法吗?
【问题讨论】:
-
你能分享一下你是如何创建和插入项目的代码吗?
-
还请澄清
integer是什么。它是自定义类型吗?错字?还是 Java 以外的其他东西? -
它是 java.lang.Integer,抱歉打错了。
标签: spring hibernate jpa spring-data-jpa spring-data