Hibernate:许多人加入了继承策略的方法

时间:2013-04-02 21:45:24

标签: java hibernate orm many-to-many entity-relationship

我遇到的问题更多的是一个方法问题,而不是如何使用,请让我解释一下:

两个班,学生和家庭作业。学生班有他们许多家庭作业的清单。家庭作业班有很多学生的名单来完成它。

一些示例代码,以防有人搜索快速多对多示例:

@Entity(name="STUDENT")
@Inheritance(strategy=InheritanceType.JOINED)//Note this join type, no redundancy    
public class Student {

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;

@ManyToMany(mappedBy="studentList")//Note how this is mapped
private Collection<Homework> homeworkList = new ArrayList<Homework>();

@Entity(name="HOMEWORK")
@Inheritance(strategy=InheritanceType.JOINED)    
public class Homework {

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;

@ManyToMany
private Collection<Student> studentList = new ArrayList<Student>();

Hibernate做了它的事情并创建了一个表,student_homework使用主键将每个家庭作业分配给学生,反之亦然。

我怎么可能使用Hibernate来保存'homeworkCompleted'布尔值。 这个值不能存在于学生班,因为有很多工作,与家庭作业一样,因为有很多学生。

一种可能的解决方案是可能手动进入数据库,创建另一列,每次保存一个条目都可以选择更新已完成的或稍后再做。

我不禁认为有一个非常简单的解决方案,hibernate可以处理并使一切正常,同时使用一些应用逻辑。

非常感谢, 迪安

1 个答案:

答案 0 :(得分:2)

你现在需要两个多对一,你的student_homework变得像Assignment [completed]。

更多相关信息: Mapping many-to-many association table with extra column(s)