首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

Hibernate xxx.hbm.xml配备

2012-11-11 
Hibernate xxx.hbm.xml配置配置文件的基本结构如下:?xml version1.0 encodingUTF-8?!DOCTYPE hib

Hibernate xxx.hbm.xml配置
配置文件的基本结构如下:

<?xml version="1.0" encoding='UTF-8'?>

<!DOCTYPE hibernate-mapping PUBLIC

                            "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

                            "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >

<hibernate-mapping package="包名">

<class name="类名" table="表名">

                  <id name="主键在java类中的字段名" column="对应表中字段" type="类型 ">

                    <generator column="id" type="java.lang.Integer">

             <generator inverse="true" lazy="true">

<key column="表中对应字段"/>

              <one-to-many inverse="true" lazy="true">

                  <key column="orgId"/>

<one-to-many column="表中对应字段" not-null="true" />

Eg.

<many-to-one name="org" column="orgId" not-null="true" />
3. 一对一关系(<one-to-one…/>)

一对一关系相对一对多关系来说比较少见,但也在某些情况下要用到,例如有一个用户的基本信息表(USER)和一个用户的密码表(PASSWD)就存在一对一的关系。下面来看一下一对一关系在Hibernate的配置。

其中主表(eg. 用户的基本信息表)的配置如下:

<one-to-one name="主表对象中子表对象的属性名" cascade="save-update"/>

Eg. <one-to-one name="password" cascade="save-update"/>

子表(eg. 用户的密码表)的配置如下:

<one-to-one name="子表对象中主表对象的属性名" constrained="true" />

Eg. <one-to-one name="user" constrained="true" />
4. 多对多关系(<many-to-many…/>)

在数据库设计时,一般将多对多关系转换为两个一对多(或多对一)关系,例如在基于角色的权限系统中,用户和角色存在的关系就是典型的多对多关系,即一个用户可以具有多个角色,而一个角色又可以为多个用户所有,一般在设计时,都会加一个用户与角色的关联表,该表与用户表以及角色表都存在外键关联。

在本小节中讲述的是没有分解的多对多关系在Hibernate中如何配置。设置格式如下:

<set name="java对象的属性名" table="表名" cascade="all" outer-join="false"> 

<key column="表的对应字段"/> 

<many-to-many column="另一个表的字段"/> 

</set> 

Eg. 上述的多对多关系可以表示为:

t_user方:

<set name="roleSet" table="t_user" cascade="all" outer-join="false"> 

<key column="roleId"/> 

<many-to-many column="roleId"/> 

</set> 

t_role方:

<set name="userSet" table="t_role" cascade="all" outer-join="false"> 

<key column="roleId"/> 

<many-to-many column="roleId"/> 

</set>

参考链接:http://www.blogjava.net/amigoxie/archive/2007/12/31/171831.html

热点排行