Hibernate @OneToMany由2个不同的列映射

Kor*_*gay 1 java hibernate jpa

我有一个名为Lecture的对象,它有2个字段,均为教师类型

class Lecture{

    private Teacher teacher;
    private Teacher subsTeacher;

}
Run Code Online (Sandbox Code Playgroud)

假设一位老师可以教很多课。所以老师与老师之间是一对多的关系

现在在老师班上,我有:

@OneToMany(mappedBy = "teacher")
@Cascade(value = {org.hibernate.annotations.CascadeType.DETACH, 
                            org.hibernate.annotations.CascadeType.LOCK})
public Set<Lecture> getLectures() {
    return lectures;
}
Run Code Online (Sandbox Code Playgroud)

但是,这不会将我的老师退回给老师的讲座退还给我。但是我也需要它们。

我该如何实现?

表结构:

表:讲座

列:id,teacher_id,substeacher_id

表老师:

列:ID,名称

Las*_*ama 5

为此,您需要根据老师/子老师过滤课程并手动设置到课程列表。否则,您需要进行单独的映射。如果您需要与老师保存课程,则应添加单独的映射并相应地使用。

@OneToMany(mappedBy = "subsTeacher", cascade = {CascadeType.ALL}) 
private Set<Lecture> subLectures;
Run Code Online (Sandbox Code Playgroud)