【发布时间】:2017-03-24 14:29:19
【问题描述】:
我在学校和学生实体之间建立了 OneToMany 关系。我想要做的是当我保存学校对象时不要保存或更新学生对象。(当然不要删除它们)
当我尝试像下面这样保存学校对象时,它也会更新我的学生对象,但我不希望它们被更新,而只是可连接的。有什么办法吗?
我删除了 Cascade,但它仍然无法正常工作。
School school = new School();
school.setStudents(studentList);
repository.save(school);
我的实体;
@OneToMany(fetch = FetchType.EAGER)
@JoinTable(name = "school_student", joinColumns = {@JoinColumn(name = "school_id")},
inverseJoinColumns = {@JoinColumn(name = "student_id")})
private List<Student> students;
编辑:
- 当我尝试保存/更新/删除学校对象时,不要保存/更新/删除学生对象。认为我对 Student 表没有任何插入/更新/删除权限。
【问题讨论】:
-
你的意思是不是通过
@OneToMany注释的cascade属性? -
@JohnBollinger 我不明白你的意思。我可以使用 Cascade,但我不知道如何使用 cascade。
-
您的意思是您使用第三张表来定义哪些学生去哪些学校?那将需要
@ManyToMany注释,而不是@OneToMany。如果没有cascade,则默认为无操作。 -
不一定,@coladict。连接表最常用于(确实是必需的)多对多关系,但也可用于映射其他类型的关系。 JPA 明确记录了对此的支持。
-
我已经写了一个答案,但在这样做的过程中我开始怀疑这是一个 X/Y 问题。你能更全面地解释一下你在这里真正想要完成的事情吗?