JPA中的事务用于确保数据操作的一致性和完整性。我们可以通过以下步骤配置和使用事务:
- 在persistence.xml中配置事务类型。可以选择JTA或RESOURCE_LOCAL。
<persistence-unit name="exampleUnit" transaction-type="JTA">
- 从EntityManagerFactory获得EntityManager。
EntityManagerFactory emf = Persistence.createEntityManagerFactory("exampleUnit");
EntityManager em = emf.createEntityManager();
- 开启事务。可以使用EntityTransaction的begin()方法。
EntityTransaction tx = em.getTransaction();
tx.begin();
- 进行增删改查操作。实体状态变更会同步到数据库。
User user = new User("John");
em.persist(user);
- 提交或回滚事务。使用EntityTransaction的commit()或rollback()方法。
tx.commit(); // 提交
tx.rollback(); // 回滚
- 关闭EntityManager。释放资源。
em.close();
代码示例:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("exampleUnit");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
User user = new User("John");
em.persist(user);
tx.commit();
em.close();