【发布时间】:2015-04-12 21:45:32
【问题描述】:
我在层次结构中有三个实体 1) 教师 2) 学生 3) 科目 在教师实体中,与学生类存在 OneToMany 关系。 Student 类与 Subject 类具有 OneToMany 关系。 我有一个特定的情况,老师有 5 个学生,学生有很多科目分配给他们。我正在获取教师实体并从教师实体获取学生列表。在 5 个中,我使用 remove() 函数从列表中删除一个学生实体。在保存教师实体时,出现错误 **java.lang.IllegalArgumentException:删除 StudentSubject 的分离实例 ** 这里 StudentSubject 是 Student 的子实体。
public class Teacher {
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy="studentCode", orphanRemoval = true)
@org.hibernate.annotations.Fetch(org.hibernate.annotations.FetchMode.SELECT)
@org.hibernate.annotations.BatchSize(size=30)
private List<Student> students = new ArrayList<Student>();
}
public class Student {
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy="studentSubjectCode", orphanRemoval = true)
@org.hibernate.annotations.Fetch(org.hibernate.annotations.FetchMode.SELECT)
@org.hibernate.annotations.BatchSize(size=30)
private List<StudentSubject> studentsubjects = new ArrayList<StudentSubject>();
}
public class StudentSubject {
}
非常感谢任何帮助。
【问题讨论】: