【发布时间】:2012-05-04 21:05:32
【问题描述】:
我需要一个多对多休眠映射,需要 3 个连接。我试图找到一个没有像LecturerCourse 这样的中间实体的解决方案。
我的数据库中的讲师和课程表之间存在多对多关系。一个课程可以由多个讲师讲授,而一个讲师可以讲多个课程。
我已经预先存储了课程。但是,我需要将课程分配给讲师。当我分配课程时,我还会存储该课程的容量。
我的数据库图:
我使用休眠和弹簧。当课程分配任何讲师时,我需要一个休眠映射。我需要向容量字段添加值。
我的讲师映射:
@Entity
@Table(name="LECTURER")
public class Lecturer {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="LECTURER_ID_SEQ")
@SequenceGenerator(name="LECTURER_ID_SEQ", sequenceName="LECTURER_ID_SEQ")
private Long Id;
@Column(name="NAME")
private String name;
@Column(name="SURNAME")
private String surname;
@Column(name="EMAIL")
private String email;
@Column(name="USERNAME")
private String username;
@Column(name="PASSWORD")
private String Password;
@ManyToMany
@JoinTable(
name="LECTURER_COURSE",
joinColumns=@JoinColumn(name="LECTURER_ID"),
inverseJoinColumns=@JoinColumn(name="COURSE_ID")
)
private List<Course> courses;
//getters - setters
}
我的课程映射:
@Entity
@Table(name="COURSE")
public class Course {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="COURSE_ID_SEQ")
@SequenceGenerator(name="COURSE_ID_SEQ", sequenceName="COURSE_ID_SEQ")
private Long id;
@Column(name="NAME")
private String name;
@Column(name="CODE")
private String code;
}
知道如何解决我的问题吗?
【问题讨论】:
-
你试过什么?如果您将课程添加到讲师,然后保存讲师,您能否在数据库中看到 LECTURER 和 LECTURER_COURSE 表是否已填充?
-
是的,它将填充数据库。我的问题是如何存储课程的容量值。一门课程可能对每位讲师具有多种能力。如何映射容量字段?
-
看看axtavt对这个问题的回答:stackoverflow.com/questions/4751902/…
-
我希望这行得通。我会尝试。谢谢。
-
@erencan 你好,我也有同样的问题,你尝试过 John 提到的解决方案吗?
标签: spring hibernate hibernate-mapping