快速业务通道

Hibernate 3新增XML关系持久性介绍 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25
va对象:

/** Product对象表现了定价目录项*/ public class Product { int id; String sku; String description; Double listPrice; Double basePrice; Double orderPrice;

Hibernate 3新增XML关系持久性介绍(2)

时间:2009-11-02

这些对象按照下面的方式映射(为了清楚,我们列出了列名,尽管在属性和列名相匹配的时候Hibernate可以自动地把属性映射为列名):

<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="demo"> <class name="Product" table="product" node="product"> <id name="id" type="int" node="@prod_id" column="id"> </id> <property name="sku" node="@sku" column="sku" not-null="true"/> <property name="description" node="description" column="description" not-null="true"/> <property name="listPrice" node="list_price" column="list_price" /> <property name="basePrice" node="drop_price" column="base_price"/> <property name="orderPrice" column="order_price"/> </class> </hibernate-mapping>

在这种情况下,Hibernate的XML关系持久性就非常方便了。由于该电子商务应用程序接收了包含产品价格更新的XML,它就利用Hibernate的XML持久性机制把这些XML写入到产品数据库中。Hibernate提供了几种XML持久性选择,包括Hibernate的saveOrUpdate方法:

document = saxReader.read(inputXML); List users = document.selectNodes("//product"); try {  Session session = ibernateUtil.sessionFactory.openSession();  Transaction transaction = session.beginTransaction();  Session dom4jSession = session.openSession(EntityMode.DOM4J);  Iterator iter = users.iterator();  while (iter.hasNext()) {   Object next = iter.next();   dom4jSession.saveOrUpdate("demo.Product", next );  }// end while transaction.commit(); session.close();

XML映射语法

上面的例子中使用的映射文件不用于Hibernate 2的映射文件。Hibernate 3引入了几种专门用于XML持久性的新映射类型。

主要的新映射属性是节点(node),它与被映射的XML文档中的一个元素或文档中的属性相关联。

一个"节点"可能表现为下面的某种映射:

· "element-name(元素名)":在例子中,<product></product>元素会被表示为node="product"。

· "@attribute-name(属性名)":在例子中,node="@sku"会被映射为XML属性<product sku="1001001">。

· ".(句点)":映射为元素的父元素(例如<products>就<product>是的父元素)。

· "element-name/@attribute-name(元素名/属性名)":映射为命名元素的属性(product/@sku)。

XML持久性并非Hibernate的主要任务

Hibernate 3框架组件高效率地实现了目前最通用的一些方法(除了LDAP之外)。Java社团现在拥有了一套框架组件,它为易于实现的OR和XML持久性提供了高效率的和一致性的方法。

在我们知道上面一些内容之后,了解Hibernate

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号