1.EntityTransaction事务
2.Transaction事务
1.EntityTransaction事务:
EntityTransaction 是属于javax.persistence.Entitysaction
同一个数据库的事务管理,即都是针对一个数据库的若干表的操作。
String persistenceUnitName="pro_persistence";
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory(persistenceUnitName);
EntityManager entityManager=entityManagerFactory.createEntityManager();
EntityTransaction transaction=entityManager.getTransaction();
//开启事务
transaction.begin();
Employee employee=new Employee();
employee.setName("zhangsan");
employee.setAge(11);
entityManager.merge(employee);
transaction.commit();
entityManagerFactory.close();
2.javax.transaction.Transaction:
处理不同数据库的事务管理
Tomcat 默认不支持JTA事务(不过可以通过添加插件来解决),或者需要用JavaEE服务器:如 jboss,weblogic服务器
JTA事务适用场景(重要)
- 比如跨行转账,就需要用到JTA事务
内部实现:事务列表List list。每每提交一个,状态变为true
提交的时候,先判断list是否全部为true,若全部为true,再提交事务。