关于Hibernate的关联映射(annotation专版)
举一典型到老掉牙的例子说明:Teacher、Student与Course之间的关系。
Teacher与Course是一对一关系;
Student与Course是一对多关系;
Teacher与Student是多对多关系;
....................
@Entity
@Table(name="Student")
publicclassStudent{
privateintid;
privateStringname;
privateStringsex;
privateCoursecourse;
privateSet<Teacher>teachers=newHashSet<Teacher>();
//建立Student与Teacher的双向多对多关联
@ManyToMany(mappedBy="students")
publicSet<Teacher>getTeachers(){
returnteachers;
}
publicvoidsetTeachers(Set<Teacher>teachers){
this.teachers=teachers;
}
//单向多对一关联
@ManyToOne
publicCoursegetCourse(){
returncourse;
}
publicvoidsetCourse(Coursecourse){
this.course=course;
}
@Id
@Column(name="s_id")
publicintgetId(){
returnid;
}
@Column(name="s_name")
publicStringgetName(){
returnname;
}
@Column(name="s_sex")
publicStringgetSex(){
returnsex;
}
.............
}
..............................................
@Entity
@Table(name="Teacher")
publicclassTeacher{
privateintid;
privateStringname;
privateStringsex;
privateStringtitle;
privateCoursecourse;
privateSet<Student>students=newHashSet<Student>();
//Teacher与Student的单向多对多联系
@ManyToMany
@JoinTable(name="t_s",
joinColumns={@JoinColumn(name="t_id")},
inverseJoinColumns={@JoinColumn(name="s_id")}
)
//设置多对多关系的中间表,其中joinColumns属性里面指向本实体数据表的关联字段,
//inverseJoinColumns属性则指向中间表的另一关联字段对应的数据表的关联字段
publicSet<Student>getStudents(){
returnstudents;
}
publicvoidsetStudents(Set<Student>students){
this.students=students;
}
//Teacher与Course的一对一关联
@OneToOne
@JoinColumn(name="Course_id")
//JoinColumn,指定Course表的外键
publicCoursegetCourse(){
returncourse;
}
publicvoidsetCourse(Coursecourse){
this.course=course;
}
@Id
@Column(name="t_id")
publicintgetId(){
returnid;
}
@Column(name="t_name")
publicStringgetName(){
returnname;
}
@Column(name="t_sex")
publicStringgetSex(){
returnsex;
}
@Column(name="t_title")
publicStringgetTitle(){
returntitle;
}
..................
}
..........................
@Entity
@Table(name="Course")
publicclassCourse{
privateintid;
privateStringname;
privateStringscore;
privateSet<Student>student=newHashSet<Student>();
privateTeacherteacher;
/*
*为实现双向的一对一关联,添加属性mappedBy,使确定该实体被映射在teacher中的course属性上,主导放在多的一方
**/
@OneToOne(mappedBy="course")
publicTeachergetTeacher(){
returnteacher;
}
publicvoidsetTeacher(Teacherteacher){
this.teacher=teacher;
}
/*
*为实现双向的多对一关联,添加属性mappedBy,使确定该实体被映射在student中的course属性上,主导放在多的一方
**/
@OneToMany(mappedBy="course")
//单向一对多关联
//@JoinColumn(name="Course_id")
publicSet<Student>getStudent(){
returnstudent;
}
publicvoidsetStudent(Set<Student>student){
this.student=student;
}
@; background: #c0c0c0; colo
分享到:
相关推荐
hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.12.Final.jar hibernate-ehcache-4.1.12.Final.jar hibernate-entitymanager-4.1.12.Final.jar hibernate-jpa-2.0-api-1.0.1.Final.jar ...
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...
hibernate one-to-one 一对一唯一外键关联映射_单向 and 双向
hibernate-jpa-2.1-api-1.0.0.final-sources.jar 源码 hibernate-jpa-2.1-api-1.0.0.final-sources.jar 源码
hibernatetools-Update-4.1.1.zip
如果在”一“一端维护一对多关联关系,hibernate会发出多余的udpate语句,所以我们一般在多的一端来维护关联关系。 加上inverse="true"这个属性,就可以强制在多的一端维护关系了。
Eclipse中Hibernate插件。
Hibernate案例与专题-继承映射策略。详细介绍了Hibernate继承映射策略。
Eclipse用于Hibernate框架开发插件,全CSDN最低资源分下载,让你吃上真正的石灰。。。
包含《多对多双向关联映射》《多对一单向关联映射》《多对一双向关联映射》《一对多单向关联映射》等文档,并有图解及例子,非常适合新手学习,尤其是刚刚接触hibernate,对映射关系不清楚的。。。。
hibernate-jpa-2.0-api-1.0.1.Final.jar
hibernate-jpa-2.1-api-1.0.0.final.jar.zip,内含hibernate-jpa-2.1-api-1.0.0.final.jar
Hibernate稳定版(hibernate-release-5.3.23.Final.zip),Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。
hibernate-commons-annotations-5.0.1.Final.jar的源码
Hibernate实体关联关系映射--学习总结.pdf
hibernate映射文件--主键生成策略[参考].pdf
hibernate-jpa-2.1-api-1.0.0.Final.jar官方下载,请放心使用
hibernate many-to-many级联保存,级联更新,级联删除