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

时间:2014-04-01 09:58:41

标签: java hibernate jpa

我有一个名为 Lecture 的对象,它有两个字段教师

class Lecture{

    private Teacher teacher;
    private Teacher subsTeacher;

}

让我们假设教师可以教许多讲座。所以教师之间有一对多的关系 - >演讲

现在在教师班上我有:

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

然而,这不会让我回到老师是教师的讲座。但我也需要它们。

我怎样才能做到这一点?

表格结构:

表:讲座

列:id,teacher_id,substeacher_id

表老师:

列:id,name

1 个答案:

答案 0 :(得分:4)

为此,您需要根据教师/小学教师过滤讲座并手动设置到讲座列表。否则你需要做单独的映射。如果您需要与老师保存讲座,您应该添加单独的映射并相应地使用。

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