JPA persistence.xml 配置

来源:互联网 发布:java方法名命名规范 编辑:程序博客网 时间:2024/05/22 05:10

1.transaction-type

RESOURCE_LOCAL
应用程序自身通过EntityManagerFactory来创建EntityManager
创建的EntityManager实例就是一个持久化上下文
只能通过@PersistenceUnit注解注入一个EntityManagerFactory,而不能通过@PersistenceContex注解
不能通过@PersistenceContex注解关联到一个RESOURCE_LOCAL类型的持久化单元
需要通过EntityTransaction API进行事务的操作,如通过EntityManager.getTransaction.begin()方法开启事务,通过EntityManager.getTransaction.begin().commit()提交事务
每次调用EntityManagerFactory.createEntityManager() 的时候,都会创建一个独立的EntityManager,同样也会产生一个独立的持久化上下文(PersistenceContext)
JTA
应用不能通过EntityManagerFactory创建EntityManager,而应该通过容器获得EntityManager
EntityManager只能通过@PersistenceContex注解进行注入,不能通过@PersistenceUnit注解关联到一个JTA类型的持久化单元
通过容器获得的EntityManger都是一个与JTA实务相关的持久化上下文的引用
在同一事务下,每一个关联到相同持久化单元的EntityManger,都会自动获得同一个持久化上下文(PersistenceContext)的引用
在JTA事务提交时,持久化上下文(PersistenceContext)会将实体与数据库同步


如果系统中使用了spring来进行持久化的管理,可以在RESOURCE_LOCAL模式下通过@PersistenceContext注解注入EntityManager,这种情况下,spring容器会通过@Transactional注解进行事务管理

阅读全文
0 0
原创粉丝点击