初学者有没有感觉在写Hibernate实习映射的时候,被各种的many-to-one set one-to-many搞乱了头脑呢?
下面只需要三部,轻轻松松搞定。
格式为:(1?)属性,是本类与(2?)的(3?)关系。
<span style="font-size:14px;">例如: <!-- users属性,本类与User的一对多 --> <!-- parent属性,本类与Department的多对一 --> <!-- roles属性,本类与Role的多对多 --></span>
<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>
<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>
Hibernate实体映射技巧总结,布布扣,bubuko.com
原文地址:http://blog.csdn.net/biezhihua/article/details/30738733