`

JPA的事务

    博客分类:
  • JAVA
阅读更多

采用myeclipse5.5.1 GA生成了JPA的POJO以及DAO和EntityManagerHelper。测试了一下,需要自己维护事务。也就是调用EntityManager.beginTransaction();开始事务,提交事务等。感觉不太方便,可以采用Spring的AOP来做事务管理。

将生成的POJO拷贝到Spring环境中的model下,在applicationContext.xml中加入以下内容:

xml 代码
 
  1. <!--Hibernate SessionFatory-->   
  2.     < bean   id = "sessionFactory"   class = "org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" >   
  3.         < property   name = "dataSource"   ref = "dataSource" />   
  4.         < property   name = "annotatedClasses" >   
  5.             < list >   
  6.                 < value > org.fanth.jpa.model.User </ value >   
  7.                 < value > org.fanth.jpa.model.Role </ value >   
  8.                 < value > org.fanth.jpa.model.UserRole </ value >   
  9.                 <!-- 在这里加入JPA的POJO -->
  10.             </ list >   
  11.         </ property >   
  12.        
  13.         < property   name = "hibernateProperties" >   
  14.             < props >   
  15.                 < prop   key = "hibernate.dialect" > org.hibernate.dialect.MySQLDialect </ prop >   
  16.                 < prop   key = "hibernate.show_sql" > false </ prop >   
  17.                 < prop   key = "hibernate.cache.provider_class" > org.hibernate.cache.EhCacheProvider </ prop >   
  18.                 < prop   key = "hibernate.cache.use_query_cache" > true </ prop >   
  19.             </ props >   
  20.         </ property >   
  21.     </ bean >   
  22.   
  23.     <!--Hibernate TransactionManager-->   
  24.     < bean   id = "transactionManager"   class = "org.springframework.orm.hibernate3.HibernateTransactionManager" >   
  25.         < property   name = "sessionFactory"   ref = "sessionFactory" />   
  26.     </ bean >   


OK,到这里就完成了JPA的POJO替换Hibernate的POJO。
好处就是没有了*.hbm.xml文件,程序更加简练,拥有了JPA的优点。
坏处就是如果需要更改配置的时候,需要重新编译POJO类,不如XML那么方便。

分享到:
评论

相关推荐

    如何控制JPA的事务

    "JPA事务管理" JPA(Java Persistence API)是一种Java持久化规范,它提供了一个抽象层来访问关系数据库。JPA的事务管理是指对一系列操作的管理,包括创建、读取、更新和删除(CRUD)等操作。事务管理的目的是确保...

    Java JPA事务处理.pdf

    在"Java JPA事务处理"中,主要讨论的是JPA在事务管理方面的细节,以及如何优化JPA性能。 1. 大数据量处理: 在处理大量数据时,JPA的性能可能受到内存限制的影响。默认情况下,JPA可能会加载整个集合到内存中,这...

    事物JPA入门

    - `jpa-2` 和 `jpa-1`: 可能是辅助材料或者扩展示例,包含更多代码示例或特定场景的解释,用于加深对JPA事务管理的实践操作理解。 通过学习上述知识点和提供的资源,你将能够掌握JPA的基础以及如何在实际项目中进行...

    Spring+Mybatis整合事务回滚

    花了一晚上时间终于搞出来了Spring整合Mybatis事务回滚(Mysql数据库),控制Service层中的多次插入操作,多次操作整体是一个事务。 里面有缘嘛和jar包,资源为war包,导入即可。运行Test类中的测试代码即可。 建表...

    JPA实用讲义

    ### JPA事务管理 JPA支持编程式和声明式事务管理。声明式事务管理通过在方法上添加`@Transactional`注解,让容器自动管理事务的开始、提交或回滚。编程式事务管理则需要手动调用`entityManager.getTransaction()`...

    07_JPA详解_使用JPA加载_更新_删除对象.zip

    JPA事务管理 JPA支持编程式和声明式事务管理。声明式事务管理更常见,通过在方法上添加`@Transactional`注解,由容器自动管理事务的开始、提交或回滚。 ### 7. 性能优化 #### 7.1 第二级别缓存 JPA支持第二级别...

    JPA入门(一)

    JPA事务管理** JPA支持声明式和编程式事务管理。在Java EE环境中,通常使用容器管理的事务,而在Java SE环境下,可以手动管理事务。 **8. JPA性能优化** - **懒加载(Lazy Loading)**: 延迟加载关联的对象,直到...

    Springboot+Atomikos+Jpa+Mysql实现JTA分布式事务

    本文将详细讲解如何利用Spring Boot、Atomikos、JPA(Java Persistence API)以及MySQL来实现JTA(Java Transaction API)分布式事务。 首先,Spring Boot是一个轻量级的框架,它简化了基于Spring的应用程序开发...

    openjpa 源码 下载 帮助开发人员调试

    3. **事务管理**:支持JTA(Java Transaction API)和JPA事务管理,确保数据操作的一致性和可靠性。 4. **查询语言**:支持JPQL(Java Persistence Query Language)和Criteria API,用于编写数据库查询。 5. **...

    Jpa的创建和增删改查的代码

    ### JPA事务管理 JPA支持编程式和声明式事务管理。声明式事务管理通过在方法上添加`@Transactional`注解,让容器自动管理事务的开始、提交或回滚。编程式事务管理则需要手动调用`EntityManager`的`begin()`, `commit...

    spring data jpa

    5. JPA事务管理:Spring Data JPA可以利用Spring的声明式事务管理,使你在操作数据库时不必手动管理事务。 总的来说,Spring Data JPA结合HSQL提供了强大的数据库操作能力,让开发者能够更专注于业务逻辑,而不是...

    spring mvc整合jpa后项目

    - 配置JPA事务管理器,例如使用`JpaTransactionManager`,并与Spring的声明式事务管理结合。 3. **实体类(Entity)**: - 创建代表数据库表的Java类,使用`@Entity`注解标记,并用`@Id`注解标识主键字段。 - ...

    03_传智播客JPA详解_搭建JPA开发环境和全局事务介绍

    本教程将详细讲解如何搭建JPA开发环境以及如何理解与应用全局事务。 首先,我们需要了解**JPA的基本概念**。JPA提供了一种面向对象的方式来映射关系数据库,使得开发者可以使用Java对象来操作数据库,而无需直接...

    jpa例子jpajpa

    5. **事务管理(Transaction)**: 在JPA中,事务是通过`EntityManager`进行管理的。你可以使用`begin()`, `commit()`和`rollback()`方法来控制事务的边界。 6. **懒加载(Lazy Loading)与即时加载(Eager Loading...

    JPA教程

    ### JPA事务管理 JPA支持两种事务管理方式: 1. **容器管理事务(Container-managed Transactions, CMT)**: 由应用服务器自动管理事务的开始、提交和回滚。 2. **bean管理事务(Bean-managed Transactions, BMT...

    浅谈SpringBoot之事务处理机制

    例如,JPA事务使用JpaTransactionManager实现,JDBC事务使用DataSourceTransactionManager实现。 在程序中定义事务管理器的代码如下: @Bean public PlatformTransactionManager transactionManager() { Jpa...

    jpa conf

    - **TransactionManager**:配置JPA事务管理器,通常是`JpaTransactionManager`。 - **JPA Properties**:设置JPA供应商特定的属性,如hibernate.dialect,用于指定数据库方言。 2. **`persistence.xml`**文件是...

    SpringBoot+Atomikos+动态多数据源+事务+2种切换数据源的方式

    3. **事务管理**:SpringBoot默认使用LocalContainerEntityManagerFactoryBean处理JPA事务,但在多数据源环境中,需要改为使用Atomikos的`JtaPlatformTransactionManager`。此外,确保开启@...

    caveatemptor-jpa

    3. **数据一致性**:JPA事务管理对于保持数据一致性至关重要,不正确的事务配置可能导致数据不一致。 4. **查询性能**:JPQL和HQL(Hibernate Query Language)虽然方便,但过度依赖动态查询可能影响性能。预编译的...

Global site tag (gtag.js) - Google Analytics