hibernate 关联关系映射
2013-11-03 17:06
316 查看
映射关系:
Many-to-one单向
Person – department
Person:
publicclassPerson
implements Serializable{
private Stringpno;
private Stringname;
private Stringaddress;
private DepartmentEntitydept;
privateintage;
}
Person.hbm.xml :
<classname="com.etc.entity.doubleface.Person"table="t_mtoo3_person">
<idname="pno"><generatorclass="uuid"/></id>
<propertyname="name"/>
<propertyname="address"/>
<propertyname="age"/>
<many-to-onename="dept"column="deptid"></many-to-one>
</class>
DepartmentEntity:
publicclass DepartmentEntityimplements Serializable{
privatestaticfinallongserialVersionUID
= 1L;
private Stringdeptno;
private Stringdeptname;
private Stringdeptaddress;
}
DepartmentEntity.hbm.xml:
<classname="com.etc.entity.doubleface.DepartmentEntity"table="t_mtoo3_dept">
<idname="deptno"><generatorclass="uuid"/></id>
<propertyname="deptname"/>
<propertyname="deptaddress"/>
</class>
Many-to-one双向 One-to-many:(去掉任意一边关系配置就成单向)
多个Person对一个 department
一个department对多个Person:
Person:
publicclassPerson
implements Serializable{
private Stringpno;
private Stringname;
private Stringaddress;
private DepartmentEntitydept;
privateintage;
}
Person.hbm.xml:
<classname="com.etc.entity.doubleface.Person"table="t_mtoo3_person">
<idname="pno"><generatorclass="uuid"/></id>
<propertyname="name"/>
<propertyname="address"/>
<propertyname="age"/>
<many-to-onename="dept"column="deptid"></many-to-one>
</class>
DepartmentEntity:
publicclass DepartmentEntityimplements Serializable{
privatestaticfinallongserialVersionUID
= 1L;
private Stringdeptno;
private Stringdeptname;
private Stringdeptaddress;
privateSet
persons;
}
DepartmentEntity.hbm.xml:
<classname="com.etc.entity.doubleface.DepartmentEntity"table="t_mtoo3_dept">
<idname="deptno"><generatorclass="uuid"/></id>
<propertyname="deptname"/>
<propertyname="deptaddress"/>
<setname="persons">
<keycolumn="deptid"></key>
<one-to-manyclass="com.etc.entity.doubleface.Person"/>
</set>
</class>
One-to-one
一个学生对应一个学号(主键双向关联)
Student- StudentNo
Student:
publicclass Student {
private Stringid;
private StudentNostuno;
private Stringname;
privateintage;
}
Student.hbm.xml:
<classname="com.etc.entity.onetoone.Student"table="t_otoo_student">
<idname="id">
<generator
class="foreign">
<param name="property">stuno</param>
</generator>
</id>
<propertyname="name"/>
<propertyname="age"/>
<one-to-onename="stuno"constrained="true"></one-to-one>
</class>
StudentNo:
publicclass StudentNo {
private Stringsno;
private Stringmem;
private Studentstu;
}
StudentNo.hbm.xml:
<classname="com.etc.entity.onetoone.StudentNo"table="t_otoo_stuno">
<idname="sno"><generatorclass="uuid"/></id>
<propertyname="mem"/>
<one-to-one
name="stu"/>
</class>
One-to-one
一个学生对应一个学号(外键双向关联)
Student- StudentNo
Student:
publicclass Student {
private Stringid;
private StudentNostuno;
private Stringname;
privateintage;
}
Student.hbm.xml:
<classname="com.etc.entity.onetoonefk.Student"table="t_otoofk_student">
<idname="id">
<generator
class="uuid">
</generator>
</id>
<propertyname="name"/>
<propertyname="age"/>
<many-to-onename="stuno"
column="stunoid"
unique="true"
not-null="true"cascade="save-update"/>
</class>
StudentNo:
publicclassStudentNo{
private Stringsno;
private Stringmem;
private Studentstu;
}
StudentNo.hbm.xml:
<classname="com.etc.entity.onetoonefk.StudentNo"table="t_otoofk_stuno">
<idname="sno">
<generatorclass="uuid"/>
</id>
<propertyname="mem"/>
<one-to-onename="stu" property-ref="stuno"/>
</class>
Many-to-many 双向关联
Course- Student(一门课程可以多个学生学习,一个学生学习多门课程)
Course:publicclass Course {
private Stringcno;
private Stringcoursemem;
private Stringcoursename;
privateSet
students;}
Course.hbm.xml:
<classname="com.etc.entity.manytomany.Course"table="t_mtom1_course">
<idname="cno"><generatorclass="uuid"/></id>
<propertyname="coursemem"/>
<propertyname="coursename"/>
<setname="students"table="t_mtom_student_course">
<keycolumn="courseid"></key>
<many-to-manyclass="com.etc.entity.manytomany.Student"column="stuid"/>
</set></class>
Student:
publicclass Student {
private Stringid;
privateSet
courses;
private Stringname;
privateintage;
}
Student.hbm.xml:
<classname="com.etc.entity.manytomany.Student"table="t_mtom1_student">
<idname="id"><generatorclass="uuid"></generator></id>
<propertyname="name"/>
<propertyname="age"/>
<!-- name属性采用实体中变量名称;table属性表示生成的中间表表名;cascade属性表示级联操作 -->
<setname="courses"table="t_mtom_student_course"cascade="save-update">
<keycolumn="stuid"></key><!--将此表的主键拿到中间表中的列名为stuid
-->
<many-to-manyclass="com.etc.entity.manytomany.Course"column="courseid"/>
<!--com.etc.entity.manytomany.Course对应表的主键拿到中间表中的列名为courseid -->
</set>
</class>
Many-to-one单向
Person – department
Person:
publicclassPerson
implements Serializable{
private Stringpno;
private Stringname;
private Stringaddress;
private DepartmentEntitydept;
privateintage;
}
Person.hbm.xml :
<classname="com.etc.entity.doubleface.Person"table="t_mtoo3_person">
<idname="pno"><generatorclass="uuid"/></id>
<propertyname="name"/>
<propertyname="address"/>
<propertyname="age"/>
<many-to-onename="dept"column="deptid"></many-to-one>
</class>
DepartmentEntity:
publicclass DepartmentEntityimplements Serializable{
privatestaticfinallongserialVersionUID
= 1L;
private Stringdeptno;
private Stringdeptname;
private Stringdeptaddress;
}
DepartmentEntity.hbm.xml:
<classname="com.etc.entity.doubleface.DepartmentEntity"table="t_mtoo3_dept">
<idname="deptno"><generatorclass="uuid"/></id>
<propertyname="deptname"/>
<propertyname="deptaddress"/>
</class>
Many-to-one双向 One-to-many:(去掉任意一边关系配置就成单向)
多个Person对一个 department
一个department对多个Person:
Person:
publicclassPerson
implements Serializable{
private Stringpno;
private Stringname;
private Stringaddress;
private DepartmentEntitydept;
privateintage;
}
Person.hbm.xml:
<classname="com.etc.entity.doubleface.Person"table="t_mtoo3_person">
<idname="pno"><generatorclass="uuid"/></id>
<propertyname="name"/>
<propertyname="address"/>
<propertyname="age"/>
<many-to-onename="dept"column="deptid"></many-to-one>
</class>
DepartmentEntity:
publicclass DepartmentEntityimplements Serializable{
privatestaticfinallongserialVersionUID
= 1L;
private Stringdeptno;
private Stringdeptname;
private Stringdeptaddress;
privateSet
persons;
}
DepartmentEntity.hbm.xml:
<classname="com.etc.entity.doubleface.DepartmentEntity"table="t_mtoo3_dept">
<idname="deptno"><generatorclass="uuid"/></id>
<propertyname="deptname"/>
<propertyname="deptaddress"/>
<setname="persons">
<keycolumn="deptid"></key>
<one-to-manyclass="com.etc.entity.doubleface.Person"/>
</set>
</class>
One-to-one
一个学生对应一个学号(主键双向关联)
Student- StudentNo
Student:
publicclass Student {
private Stringid;
private StudentNostuno;
private Stringname;
privateintage;
}
Student.hbm.xml:
<classname="com.etc.entity.onetoone.Student"table="t_otoo_student">
<idname="id">
<generator
class="foreign">
<param name="property">stuno</param>
</generator>
</id>
<propertyname="name"/>
<propertyname="age"/>
<one-to-onename="stuno"constrained="true"></one-to-one>
</class>
StudentNo:
publicclass StudentNo {
private Stringsno;
private Stringmem;
private Studentstu;
}
StudentNo.hbm.xml:
<classname="com.etc.entity.onetoone.StudentNo"table="t_otoo_stuno">
<idname="sno"><generatorclass="uuid"/></id>
<propertyname="mem"/>
<one-to-one
name="stu"/>
</class>
One-to-one
一个学生对应一个学号(外键双向关联)
Student- StudentNo
Student:
publicclass Student {
private Stringid;
private StudentNostuno;
private Stringname;
privateintage;
}
Student.hbm.xml:
<classname="com.etc.entity.onetoonefk.Student"table="t_otoofk_student">
<idname="id">
<generator
class="uuid">
</generator>
</id>
<propertyname="name"/>
<propertyname="age"/>
<many-to-onename="stuno"
column="stunoid"
unique="true"
not-null="true"cascade="save-update"/>
</class>
StudentNo:
publicclassStudentNo{
private Stringsno;
private Stringmem;
private Studentstu;
}
StudentNo.hbm.xml:
<classname="com.etc.entity.onetoonefk.StudentNo"table="t_otoofk_stuno">
<idname="sno">
<generatorclass="uuid"/>
</id>
<propertyname="mem"/>
<one-to-onename="stu" property-ref="stuno"/>
</class>
Many-to-many 双向关联
Course- Student(一门课程可以多个学生学习,一个学生学习多门课程)
Course:publicclass Course {
private Stringcno;
private Stringcoursemem;
private Stringcoursename;
privateSet
students;}
Course.hbm.xml:
<classname="com.etc.entity.manytomany.Course"table="t_mtom1_course">
<idname="cno"><generatorclass="uuid"/></id>
<propertyname="coursemem"/>
<propertyname="coursename"/>
<setname="students"table="t_mtom_student_course">
<keycolumn="courseid"></key>
<many-to-manyclass="com.etc.entity.manytomany.Student"column="stuid"/>
</set></class>
Student:
publicclass Student {
private Stringid;
privateSet
courses;
private Stringname;
privateintage;
}
Student.hbm.xml:
<classname="com.etc.entity.manytomany.Student"table="t_mtom1_student">
<idname="id"><generatorclass="uuid"></generator></id>
<propertyname="name"/>
<propertyname="age"/>
<!-- name属性采用实体中变量名称;table属性表示生成的中间表表名;cascade属性表示级联操作 -->
<setname="courses"table="t_mtom_student_course"cascade="save-update">
<keycolumn="stuid"></key><!--将此表的主键拿到中间表中的列名为stuid
-->
<many-to-manyclass="com.etc.entity.manytomany.Course"column="courseid"/>
<!--com.etc.entity.manytomany.Course对应表的主键拿到中间表中的列名为courseid -->
</set>
</class>
相关文章推荐
- 四。向内核添加内核模块
- Servlet基础(三) Servlet的多线程同步问题
- Servlet基础(二) Servlet的生命周期
- 利用cookie 记住背景颜色 (利用Jquery对Cookie进行设值与取值)
- 机器学习中的超平面wx+b=0?
- C# ZIP文件的压缩和解压缩(SharpZipLib.dll)
- yii cgridview 如何显示图片
- 几何对象和空间参考
- 向亲人、故乡和“本民族”致敬的写作----查舜长篇小说《月亮是夜晚的一点明白》读后
- 遇到的比较有意思的问题(1)去掉重复数字(2)提取数组的子数组,求和最大的子数组、最大的子数组和
- Servlet基础(一) Servlet基础和关键的API介绍
- [原]考试系统——C#反射机制+工厂模式+缓存机制遇到问题
- [原]考试系统——C#反射机制+工厂模式+缓存机制遇到问题
- hibernate 配置搭建
- 插入排序
- 【Java TCP/IP Socket】TCP Socket(含代码)
- Jquery 秀、无极限------正则表达式、Html、CSS、JavaScript基础回顾
- 考试系统——C#反射机制+工厂模式+缓存机制遇到问题
- 二分图
- SVN版本控制的环境搭建