JPA - EntityTransaction与事务

简介: JPA - EntityTransaction与事务

EntityTransaction 接口用来管理资源层实体管理器的事务操作,通过调用实体管理器的getTransaction方法 获得其实例。

其常用方法如下:

① begin

用于启动一个事务,此后的多个数据库操作将作为整体被提交或撤消。

若这时事务已启动则会抛出 IllegalStateException 异常。


 commit

用于提交当前事务。

即将事务启动以后的所有数据库更新操作持久化至数据库中。


③ rollback

撤消(回滚)当前事务。

即撤消事务启动后的所有数据库更新操作,从而不对数据库产生影响。


④ setRollbackOnly

使当前事务只能被撤消。


⑤ getRollbackOnly

查看当前事务是否设置了只能撤消标志。


⑥ isActive

查看当前事务是否是活动的。

如果返回true则不能调用begin方法,否则将抛出 IllegalStateException 异常。

如果返回 false 则不能调用 commit、rollback、setRollbackOnly 及 getRollbackOnly 方法,否则将抛出 IllegalStateException 异常。

示例如下:

    @Before
    public void init(){
        entityManagerFactory = Persistence.createEntityManagerFactory("jpa-1");
        entityManager = entityManagerFactory.createEntityManager();
        //必须先获取事务实例
        transaction = entityManager.getTransaction();
        //开启事务
        transaction.begin();
    }
    @After
    public void destroy(){
        //提交事务
        transaction.commit();
        entityManager.close();
        entityManagerFactory.close();
    }


目录
相关文章
|
6月前
|
SQL Oracle 关系型数据库
第7章 事务
第7章 事务
31 0
|
8月前
|
SQL 关系型数据库 MySQL
⑨【MySQL事务】事务开启、提交、回滚,事务特性ACID,脏读、幻读、不可重复读。
⑨【MySQL事务】事务开启、提交、回滚,事务特性ACID,脏读、幻读、不可重复读。
71 0
|
8月前
|
存储 Java 中间件
事务一致性测试
事务一致性测试
61 0
|
8月前
|
SQL 前端开发 大数据
什么是大事务?以及大事务产生的问题
什么是大事务?以及大事务产生的问题
204 0
|
存储 Oracle 固态存储
深入理解事务
事务将应用程序的多个读、写操作捆绑在一起成为一个逻辑执行单元。即事务中的所有读写是一个执行的整体,整 个事务要么成功(提交)、要么失败(中止 或者 回滚)。如果失败,应用程序可以安全地重试。
16450 0
深入理解事务
|
人工智能 关系型数据库 MySQL
事务详解
事务是逻辑上的一组操作,要么都执行,要么都不执行。
80 0
|
SQL 存储 关系型数据库
|
SQL Java 大数据
事务详解(2)
你好看官,里面请!今天笔者讲的是事务。不懂或者觉得我写的有问题可以在评论区留言,我看到会及时回复。 注意:本文仅用于学习参考,不可用于商业用途,如需转载请跟我联系。
173 1
|
数据库
什么时候需要使用事务
什么时候需要使用事务
640 0
|
SQL Java 数据库连接
事务介绍、JDBC中对事务的处理及事务的ACID属性
事务介绍、JDBC中对事务的处理及事务的ACID属性
102 0