JPA的事务

采用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那么方便。

你可能感兴趣的:(spring,bean,Hibernate,cache,jpa)