3

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

两个班级,学生和家庭作业。学生班级有一份他们许多家庭作业的清单。家庭作业课有一个要完成它的许多学生的列表。

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

@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 可以处理并让一切正常,还有一点应用逻辑。

非常感谢,院长

4

1 回答 1

2

你现在需要两个多对一,你的 student_homework 变成了类似于 Assignment[completed] 的东西。

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

于 2013-04-03T10:31:01.603 回答