J2EE中Hibernate xml映射浅析

开发 后端
正如题目所示,本文讲述的是【J2EE】hibernate xml映射,详细请看正文。

如题目所示,本文讲述的是J2EE中Hibernate xml映射。
对于没有外键关系的简单表,hbm文件中不要做修改就能映射成dom4j的Element,默认每个属性都映射为一个node;有外键关系的要在many-to-one中加入 embed-xml="false",要不的话经常会造成堆栈溢出或者dom4j试图给一个节点设置多个父节点。对Hibernate xml映射映射,可以分简单测试和复杂的测试,如下所示。

简单的测试:

  1. xml version="1.0"?> 
  2. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
  4. <hibernate-mapping   
  5. package="test"> 
  6. <class name="Xml" table="xml" lazy="true" node="xml"> 
  7.    <id name="id" column="id" type="long" node="@id"> 
  8.     <generator class="native"/> 
  9.    id> 
  10.    <property name="name" column="name" not-null="true" length="250" node="@name"/> 
  11.     
  12.    <bag name="subs" table="sub" inverse="true" node="subs"> 
  13.     <key column="parent" /> 
  14.     <one-to-many class="Sub" node="sub"/> 
  15.    bag> 
  16. class> 
  17. hibernate-mapping>xml version="1.0"?> 
  18. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  19. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
  20. <hibernate-mapping   
  21. package="test"> 
  22. <class name="Sub" table="sub" lazy="true" node="sub"> 
  23.    <id name="id" column="id" type="long" node="@id"> 
  24.     <generator class="native"/> 
  25.    id> 
  26.    <property name="name" column="name" not-null="true" length="250" node="@name"/> 
  27.     
  28.    <many-to-one name="parent" column="parent" class="Xml" embed-xml="false"/> 
  29. class> 
  30. hibernate-mapping> 

复杂一点的测试:

  1. xml version="1.0"?> 
  2. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
  4. <hibernate-mapping   
  5. package="test"><class name="Dir" table="dir" lazy="true"> 
  6.    <id name="id" column="id" type="long" node="@id"> 
  7.     <generator class="native"/> 
  8.    id> 
  9.    <property name="name" column="name" not-null="true" length="50" node="@name"/> 
  10.     
  11.    <many-to-one name="parent" column="parent_id" class="Dir" node="@parentId" embed-xml="false"/> 
  12.     
  13.    <bag name="children" inverse="true" cascade="all" node="dirs"> 
  14.     <key column="parent_id"/> 
  15.     <one-to-many class="Dir"/> 
  16.    bag> 
  17.     
  18.    <bag name="files" inverse="true" table="file" node="files"> 
  19.     <key column="parent_id" /> 
  20.     <one-to-many class="File"/> 
  21.    bag> 
  22.   class> 
  23. hibernate-mapping>xml version="1.0"?> 
  24. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  25. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
  26. <hibernate-mapping   
  27. package="test"> 
  28. <class name="File" table="file" lazy="true"> 
  29.    <id name="id" column="id" type="long" node="@id"> 
  30.     <generator class="native"/> 
  31.    id> 
  32.    <property name="title" column="title" not-null="true" length="250"/> 
  33.    <property name="content" column="content" not-null="true" type="string"   
  34.     lazy="true" length="10000"/> 
  35.    <many-to-one name="parent" column="parent_id" class="Dir" not-null="true" node="@parentId" embed-xml="false"/> 
  36. class> 
  37. hibernate-mapping> 

以上便是Hibernate xml映射映射及其代码。

 

【编辑推荐】

  1. 初学者适用的Hibernate学习方法
  2. Hibernate优化方法解析
  3. Hibernate一对多关系的处理
  4. Struts与Hibernate的完美结合方案
  5. Hibernate的性能优化
责任编辑:仲衡 来源: 百度博客
相关推荐

2009-06-10 16:25:43

J2EE架构架构

2009-06-16 11:14:00

Hibernate+SJ2EE应用开发

2009-06-23 08:06:46

J2EE体系架构J2EE模型J2EE设计模式

2009-06-10 14:10:23

J2EE学习J2EE是什么

2009-02-01 14:07:01

J2EEXMLXML配置文件

2009-06-10 13:37:06

J2EE可伸缩性J2EE灵活性J2EE维护

2009-06-11 17:06:11

J2EE历史Java EE概述

2009-06-30 17:02:31

J2EE实现分页

2009-06-23 16:48:26

J2EE常见问题J2EE平台

2009-06-22 17:05:41

Java EEJava企业应用

2009-06-22 17:34:40

J2EE架构

2009-06-18 15:54:57

J2EE下使用JNDI

2009-06-23 08:12:48

J2EE调用存储过程

2009-06-22 16:21:02

J2EE线程

2009-06-18 16:13:14

J2EE开发

2009-06-12 08:54:22

EJB术语J2EE

2009-06-22 09:48:00

J2EE web se

2011-05-16 14:07:58

J2EE

2009-02-23 11:18:06

J2EE架构师Java

2009-06-11 17:19:47

J2EE设计模式Template
点赞
收藏

51CTO技术栈公众号