1、 hibernate模板规则
一对多(set):
<set name="">
<key column=""/>
<one-to-many class="" />
</set>
多对一:
<many-to-one name="" class="" column=""/>
多对多(set):
<set name="" table="">
<key column=""/>
<many-to-many class="" column=""/>
</set>
一对一(基于外键的有外键方)
<many-to-one name="" class="" column="" unique="true" />
一对一(基于外键的无外键方)
<one-to-one name="" class="" property-ref="" />
2、填写name、class、column等属性值
privilege属性:表示与Privilege的多对多关系
Employee.hbm.xml中配置
概念:表示本对象(员工)
关系:多个员工(employee)对应一个部门(department)
一般规则:
name填写的就是本方关联的对方,Employee关联的对方就是Department。所以这里的值写department
class填写的就是本方关联的对方的实体类,,Employee关联的对方就是Department。所以这里的值写Department
<many-to-one name="department" class="Department" column="departmentId" />
三步走:
–A(表示name属性)
–B(表示class属性)
–C(表示column属性)
name属性
填写A,比如这里many-to-one的name属性写departmentclass属性
填写B,比如这里many-to-one的class属性写Department举例说明:
<!-- employee属性: 表示与Employee的一对一的关系,本方是有外键方 -->
<many-to-one name="employee" class="Employee" column="employeeId" unique="true" />
- column属性:
在many-to-one中,column属性写本条配置中name属性加id后缀
在one-to-many的<key>中column,写关联对方类的表达此关系的外键列名
在many-to-many的<set> 内嵌 <key>中column属性写关联对方类的<many-to-many>的column属性
<many-to-many>中的column属性填写本类<set>标签的name属性值去掉s加Id后缀,比如:实体类中我习惯将员工的Set集合写成 employees
<set> 的table属性写:两个关联实体类首字母小写,通过下划线连接,比如:teacher_student
在one-to-one的无外键方的property-ref=""写有外键方的对方类的name属性值
上面的规则可以结合如下的资料配合使用
由于资源上传有大小限制,这里的资源只包含hbm.xml和实体类还有部分测试代码,其他环境请百度一下
传送门
http://www.baidu.com
资料地址:
http://download.csdn.net/detail/u010503822/9755383