J2EE中Hibernate xml映射淺析
如題目所示,本文講述的是J2EE中Hibernate xml映射。
對(duì)于沒有外鍵關(guān)系的簡(jiǎn)單表,hbm文件中不要做修改就能映射成dom4j的Element,默認(rèn)每個(gè)屬性都映射為一個(gè)node;有外鍵關(guān)系的要在many-to-one中加入 embed-xml="false",要不的話經(jīng)常會(huì)造成堆棧溢出或者dom4j試圖給一個(gè)節(jié)點(diǎn)設(shè)置多個(gè)父節(jié)點(diǎn)。對(duì)Hibernate xml映射映射,可以分簡(jiǎn)單測(cè)試和復(fù)雜的測(cè)試,如下所示。
簡(jiǎn)單的測(cè)試:
- xml version="1.0"?>
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <hibernate-mapping
- package="test">
- <class name="Xml" table="xml" lazy="true" node="xml">
- <id name="id" column="id" type="long" node="@id">
- <generator class="native"/>
- < SPAN>id>
- <property name="name" column="name" not-null="true" length="250" node="@name"/>
- <bag name="subs" table="sub" inverse="true" node="subs">
- <key column="parent" />
- <one-to-many class="Sub" node="sub"/>
- < SPAN>bag>
- < SPAN>class>
- < SPAN>hibernate-mapping>xml version="1.0"?>
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <hibernate-mapping
- package="test">
- <class name="Sub" table="sub" lazy="true" node="sub">
- <id name="id" column="id" type="long" node="@id">
- <generator class="native"/>
- < SPAN>id>
- <property name="name" column="name" not-null="true" length="250" node="@name"/>
- <many-to-one name="parent" column="parent" class="Xml" embed-xml="false"/>
- < SPAN>class>
- < SPAN>hibernate-mapping>
復(fù)雜一點(diǎn)的測(cè)試:
- xml version="1.0"?>
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <hibernate-mapping
- package="test"><class name="Dir" table="dir" lazy="true">
- <id name="id" column="id" type="long" node="@id">
- <generator class="native"/>
- < SPAN>id>
- <property name="name" column="name" not-null="true" length="50" node="@name"/>
- <many-to-one name="parent" column="parent_id" class="Dir" node="@parentId" embed-xml="false"/>
- <bag name="children" inverse="true" cascade="all" node="dirs">
- <key column="parent_id"/>
- <one-to-many class="Dir"/>
- < SPAN>bag>
- <bag name="files" inverse="true" table="file" node="files">
- <key column="parent_id" />
- <one-to-many class="File"/>
- < SPAN>bag>
- < SPAN>class>
- < SPAN>hibernate-mapping>xml version="1.0"?>
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <hibernate-mapping
- package="test">
- <class name="File" table="file" lazy="true">
- <id name="id" column="id" type="long" node="@id">
- <generator class="native"/>
- < SPAN>id>
- <property name="title" column="title" not-null="true" length="250"/>
- <property name="content" column="content" not-null="true" type="string"
- lazy="true" length="10000"/>
- <many-to-one name="parent" column="parent_id" class="Dir" not-null="true" node="@parentId" embed-xml="false"/>
- < SPAN>class>
- < SPAN>hibernate-mapping>
以上便是Hibernate xml映射映射及其代碼。
【編輯推薦】