事务在Hibernate以及JPA中的应用(二)
2008-11-15 23:40
162 查看
终于考完试了,接着总结事务在JPA中的应用。JPA中的事务可以采用以下两种方式:
1 resource-local ,如果采用此种类型的事务,那么此时其实采用的就是本身资源的事务,比如如果资源是数据库,那么事务就是JDBC事务。在此种模式下,我们需要采用JPA接口EntityTransaction接口来操作事务,此种模式下典型的代码如下:
Java代码
public class XXXDao....{
public void method(){
try{
EntityManagerFactory factory = Persistence.createEntityManagerFactory("titan");
EntityManager em = factory.createEntityManager( );
EntityTransaction tx = em.getTransaction();
tx.begin();
//数据库操作
tx.commit();
}catch(RunntimeException e){
tx.rollback();
//....
}finally{
em.close();
}
}
}
2.JTA事务。如果应用程序需要访问多个资源,比如多个数据库,此时就需要采用JTA事务了。如果使用J2EE AS 的话,那么可以采用BMT的编程式事务边界划分和CMT的声明式事务划分。一般采用EJB容器的CMT比较方便。如果采用BMT的话,我们可以通过标准的UserTransaction来操控事务,不过此时的UserTransaction对象一般由容器绑定到JNDI数,然后bean里通过JNDI查找来获取。如果采用CMT的话,容器会根据每个bean方法的事务属性的设定来决定具体每个方法的事务。本文出自 “仁义礼智信” 博客,请务必保留此出处http://yuquan.blog.51cto.com/1924539/360720
1 resource-local ,如果采用此种类型的事务,那么此时其实采用的就是本身资源的事务,比如如果资源是数据库,那么事务就是JDBC事务。在此种模式下,我们需要采用JPA接口EntityTransaction接口来操作事务,此种模式下典型的代码如下:
Java代码
public class XXXDao....{
public void method(){
try{
EntityManagerFactory factory = Persistence.createEntityManagerFactory("titan");
EntityManager em = factory.createEntityManager( );
EntityTransaction tx = em.getTransaction();
tx.begin();
//数据库操作
tx.commit();
}catch(RunntimeException e){
tx.rollback();
//....
}finally{
em.close();
}
}
}
2.JTA事务。如果应用程序需要访问多个资源,比如多个数据库,此时就需要采用JTA事务了。如果使用J2EE AS 的话,那么可以采用BMT的编程式事务边界划分和CMT的声明式事务划分。一般采用EJB容器的CMT比较方便。如果采用BMT的话,我们可以通过标准的UserTransaction来操控事务,不过此时的UserTransaction对象一般由容器绑定到JNDI数,然后bean里通过JNDI查找来获取。如果采用CMT的话,容器会根据每个bean方法的事务属性的设定来决定具体每个方法的事务。本文出自 “仁义礼智信” 博客,请务必保留此出处http://yuquan.blog.51cto.com/1924539/360720
相关文章推荐
- 事务在Hibernate以及JPA中的应用(一)
- Hibernate延迟加载以及利用Spring事务完美解决延迟加载问题
- hibernatJPA---【小白系列】0基础到熟练应用hibernate框架(十五)
- 【Hibernate系列】(二):事务的应用
- 关于hibernate一级,二级缓存以及事务隔离机制。
- 将 Shiro 作为应用的权限基础 五:SpringMVC+Apache Shiro+JPA(hibernate)整合配置
- 创建JDBC模板简化代码、JDBC应用的事务管理以及连接池的作用
- spring事务传播级别隔离级别以及高并发下的应用经验
- 事务传播级别隔离级别以及高并发下的应用经验
- 使用Hibernate的session执行任意SQL语句以及整个事务
- hibernate的事务处理机制以及flush方法的作用
- spring整合JPA(hibernate)以及jdbctemple
- [spring]事务传播级别隔离级别以及高并发下的应用经验
- Weblogic 部署 hibernate jpa 应用 包无法加载
- 【精通hibernate】(4)hibernate事务管理以及并发问题处理
- hibernate结合spring框架配置连接数据库以及事务控制
- 编程式事务管理、声明式事务管理中HibernateDaoSupport与JdbcDaoSupport的应用
- 关于JSF/PF+Hibernate+JPA(web开发中)数据的添加,更新,以及界面数据显示小结(图片待传)
- Spring MVC + JPA + Hibernate + GlassFish V3 + MySQL 实现J2EE应用的常用配置模板详解
- spring+hibernate+jpa配置JTA事务出错,如何解决?