读书人

[转]hibernate-xml配备模板

发布时间: 2012-11-17 11:14:14 作者: rapoo

[转]hibernate-xml配置模板

hibernate-xml配置模板

1.多对一单向映射(User- Group)
【Group.hbm.xml文件如下:】
<hibernate-mapping>
<class name="com.dragon.hibernate.Group" table="t_group">
<id name="id">
<generator table="t_user">
<id name="id">
<generator column="groupid"/>
</class>
</hibernate-mapping>
---------------------
2.多对多双向映射(User<- Role)
【User.hbm.xml文件如下】
<hibernate-mapping>
<class name="com.dragon.hibernate.User" table="t_user">
<id name="id">
<generator table="t_user_role">
<key column="userid"/>
<many-to-many column="roleid"/>
</set>
</class>
</hibernate-mapping>
【Role.hbm.xml文件如下】
<hibernate-mapping>
<class name="com.dragon.hibernate.Role" table="t_role">
<id name="id">
<generator table="t_user_role">
<key column="roleid"/>
<many-to-many column="userid"/>
</set>
</class>
</hibernate-mapping>
---------------------
3.多对多单向映射(User<-Role)
在User端使用set 引用role 维持关系,则User.hbm.xml文件同上面的双向一样,只有Role.hbm.xml文件稍微有所小小的不同,比双向更简单。
【Role.hbm.xml文件如下】
<hibernate-mapping>
<class name="com.dragon.hibernate.Role" table="t_role">
<id name="id">
<generator table="t_user">
<id name="id">
<generator table="t_user_role">
<key column="userid"/>
<many-to-many column="roleid"/>
</set>
</class>
</hibernate-mapping>
---------------------
4.一对一主键双向(Person?-> IdCard)
【Person.hbm.xml文件如下】
<hibernate-mapping>
<class name="com.dragon.hibernate.Person" table="t_person">
<id name="id">
<generator constrained="true"/>
</class>
</hibernate-mapping>
【Idcard.hbm.xml文件如下】
<hibernate-mapping>
<class name="com.dragon.hibernate.IdCard" table="t_idcard">
<id name="id">
<generator table="t_idcard">
<id name="id">
<generator table="t_idcard">
<id name="id">
<generator table="t_person">
<id name="id">
<generator column="idcardid" unique="true"/>
</class>
</hibernate-mapping>
---------------------
7.一对一外键双向(Person<--> IdCard)
Person.hbm.xml文件与单向一样
IdCard.hbm.xml文件如下:
<hibernate-mapping>
<class name="com.dragon.hibernate.IdCard" table="t_idcard">
<id name="id">
<generator proper-ref=“idcard”/>
</class>
</hibernate-mapping>
---------------------
8.一对多单向(Group--> User)
注意,在key中的外键 <key column="groupid"/>要一致不然要生成中间表
【Group.hbm.xml文件如下】
<hibernate-mapping package="com.dragon.hibernate">
<class name="Group" table="t_group">
<id name="id">
<generator table="t_user">
<id name="id">
<generator table="t_group">
<id name="id">
<generator cascade="all">
<key column="groupid"/>
<one-to-many table="t_user">
<id name="id">
<generator column="groupid"/>
</class>
</hibernate-mapping>
---------------------
10.继承映射(Pig和Bird 继承Animal)
--一棵继承树映射成一张表
extends.hbm.xml文件如下:
<hibernate-mapping package="com.dragon.hibernate">
<class name="Animal" table="t_extends">
<id name="id">
<generator type="string"/>
<property name="name"/>
<property name="sex"/>
<subclass name="Pig" discriminator-value="P">
<property name="weight"/>
</subclass>
<subclass name="Bird" discriminator-value="B">
<property name="height"/>
</subclass>
</class>
</hibernate-mapping>
---------------------
11.继承映射(Pig和Bird 继承Animal)--每个具体类映射成一张表joined-classs
extends.hbm.xml文件如下:
<hibernate-mapping package="com.dragon.hibernate">
<class name="Animal" table="t_animal">
<id name="id">
<generator table="t_pig">
<key column="pid"/>
<property name="weight"> </property>
</joined-subclass>
<joined-subclass name="Bird" table="t_bird">
<key column="bid"/>
<property name="height"> </property>
</joined-subclass>
</class>
</hibernate-mapping>
---------------------
12.继承映射(Pig和Bird 继承Animal)--每个子类类映射成一张表union-subclass
extends.hbm.xml文件如下:
<hibernate-mapping package="com.dragon.hibernate">
<class name="Animal" table="t_animal">
<id name="id">
<generator table="t_pig">
<property name="weight"/>
</union-subclass>
<union-subclass name="Bird" table="t_bird">
<property name="height"/>
</union-subclass>
</class>
</hibernate-mapping>
**注释在使用<id name="id">
<generator table="t_animal"> 中添加Abstract="true"可以使hibernate不生成表t_animal
---------------------
13. component映射
component.hbm.xml文件如下:
<hibernate-mapping>
<class name="com.bjsxt.hibernate.User" table="t_user">
<id name="id">
<generator table="t_CollectionMapping">
<id name="id">
<generator table="t_set_value">
<key column="set_id"/>
<element type="string" column="set_value"/>
</set>
<list name="listValue" table="t_list_value">
<key column="list_id"/>
<list-index column="list_index"/>
<element type="string" column="list_value"/>
</list>
<array name="arrayValue" table="t_array_value">
<key column="array_id"/>
<list-index column="array_index"/>
<element type="string" column="array_value"/>
</array>
<map name="mapValue" table="t_map_value">
<key column="map_id"/>
<map-key type="string" column="map_key"/>
<element type="string" column="map_value"/>
</map>
</class>
</hibernate-mapping>

读书人网 >XML SOAP

热点推荐