快速业务通道

将遗留Hibernate应用程序迁移到OpenJPA和EJB 3.0(二) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
遗留 Hibernate 应用程序,请考虑在 persistence.xml 文件中设置以下 OpenJPA 配置属性:

映射 28. 悲观锁定(OpenJPA 配置属性)

<property   name="openjpa.LockManager"   value="pessimistic"> </property> <property   name="openjpa.ReadLockLevel"   value="read"> </property> <property   name="openjpa.WriteLockLevel"   value="write"> </property> <property   name="openjpa.jdbc.TransactionIsolation"   value="repeatable- read"> </property>

使用这些属性,所有读取内容都获取共享(读取)锁定并保存它们,直到事务结束。如果在同一记录 具有多个并发更新版本时遇到并发性问题(死锁),则可能需要指定写入的 ReadLockLevel,以便在检索 数据时生成 FOR UPDATE,并强制执行更新版本的序列。

如果使用配置参数在 persistence.xml 文件中指定这些悲观锁定级别,则它们将会应用于所有事务。 另外,您可能需要使用 org.apache.openjpa.persistence.FetchPlan 类以编程方式为单个事务设置锁定 级别,如以下代码片段所示:

映射 28. 悲观锁定(以编程方式设置的 OpenJPA 配置属性)

import org.apache.openjpa.persistence.*; ... EntityManager em = ...; em.getTransaction ().begin (); ... // load an object with a pessimistic read lock mode fetch = ( OpenJPAPersistence.cast( em ) ).getFetchPlan (); fetch.setReadLockMode( LockModeType.WRITE ); Address address = em.find( Address.class, addressId ); ... em.getTransaction ().commit ();

将遗留Hibernate应用程序迁移到OpenJPA和EJB 3.0(二)(11)

时间:2011-09-18 Donald Vines

迁移 Hibernate 配置参数

在 Hibernate 中,配置 SessionFactory 的最常见方法是在 hibernate.cfg.xml 文件中包括 <property> 元素,并将该文件放置在类路径的根文件夹中。另一个很少使用的等效方法是在类路 径的 hibernate.properties 文件中包括属性。

在 OpenJPA 中,EntityManagerFactory 是通过以下方法配置的:在 persistence.xml 文件中包括命 名的 <persistence-unit> 元素,并将该文件放置在类路径的 META-INF 文件夹中。 <persistence-unit> 定义持久性提供程序、映射文件和其他属性,如数据库连接和日志记录。持 久性提供程序标识实现 JPA 规范的供应商,<persistence-unit> 中的命名属性将特定于持久性提 供程序(本示例中为 OpenJPA)。

将 Hibernate 应用程序迁移到 OpenJPA 时,至少会遇到三个常见配置场景:

数据库连接——该配置属性告诉 SessionFactory 如何连接到数据库。

映射位置——该属性控制对象到数据库中行的映射。

日志类别——该属性使您能够诊断问题,如设置日志记录/跟踪级别。

您可能会遇到许多配置属性,这里无法一一介绍,所以请一定要参阅参考资料,获得关于映射其他配 置属性的信息。其中特别重要的参考资料是用于 org.hibernate.cfg.Environment 类和所有 Hibernate 配置属性的 Hibernate API 文档和 OpenJPA 用户指南。

1. 数据库连接

有以下两种方法配置数据库连接:使用本地 JDBC 连接(这里将介绍它)或使用 J2EE 数据源(请参 见参考资料)。

Hibernate 约定

在 Hibernate 中,配置 JDBC 连接按照以下方式进行映射:

使用 dialect 配置参数。

使用 connection.driver_class 配置参数。

使用 connection.url 配置参数。

使用 connection.username 配置参数。

使用 connection.password 配置参数。

配置

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号