首页 > 代码库 > Hibernate实体映射技巧总结

Hibernate实体映射技巧总结

初学者有没有感觉在写Hibernate实习映射的时候,被各种的many-to-one set one-to-many搞乱了头脑呢?

下面只需要三部,轻轻松松搞定。

1,写注释

格式为:(1?)属性,是本类与(2?)的(3?)关系。

<span style="font-size:14px;">例如:
<!-- users属性,本类与User的一对多 -->
<!-- parent属性,本类与Department的多对一 -->
<!-- roles属性,本类与Role的多对多 --></span>

2,拷模板

<span style="font-size:14px;">一对多模板
<set name="">
	<key column=""></key>
	<one-to-many class=""/>
</set>

多对一模板
<many-to-one name="" class="" column=""></many-to-one>

多对多模板
<set name="" table="">
	<key column=""></key>
	<many-to-many class="" column=""></many-to-many>
</set></span>


3,填空

<span style="font-size:14px;">name属性:将(1?)填入
class属性:将(2?)填入
特殊的column:
	当是:一对多 和 多对一 两对对应关系时
                多的一方维护关联关系,也就是说多的一方有一的一方的外键。
		将"多对一"的一方的name+Id填入到column中,在将column中的值填入到
		"一对多"的column中
		例如:
		 <!-- users属性,本类与User的一对多 -->
                <set name="users">
        	    <key column="departmentId"></key>
        	    <one-to-many class="User"/>
                </set>
		<!-- department属性,本类与Department的多对一 -->
		<many-to-one name="department" class="Department" column="departmentId"></many-to-one>

         当是:多对多 和 多对多 的对应关系时
		有一个中间表维护双方关系,也就是中间表中存放着双方表的外键。
		所以table属性的值,双方要一致。	        
		key中的column属性代表的是本方主键对应到中间表的外键名。
		many-to-many的column属性代表对方主键对应到中间表的外键名。
		例如:
		<!-- roles属性,本类与Role的多对多 -->
		<set name="roles" table="user_role">
			<key column="userId"></key>
			<many-to-many class="Role" column="roleId"></many-to-many>
		</set>
		<!-- users属性,本类与User的多对多 -->
		<set name="users" table="user_role">
			<key column="roleId"></key>
			<many-to-many class="User" column="userId"></many-to-many>
		</set></span>