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();
    }


目录
相关文章
|
前端开发 Java 数据库连接
Spring Boot 3 整合 Mybatis-Plus 动态数据源实现多数据源切换
Spring Boot 3 整合 Mybatis-Plus 动态数据源实现多数据源切换
|
JavaScript 前端开发
kettle从sftp下载多个文件并进行转换后输出
kettle从sftp下载多个文件并进行转换后输出
|
Java API 数据安全/隐私保护
如何在Java中处理InvalidKeyException异常?
如何在Java中处理InvalidKeyException异常?
|
搜索推荐 大数据 数据安全/隐私保护
大数据的应用领域
【4月更文挑战第10天】大数据已深入金融(风险评估、欺诈检测)、医疗(精准医疗、疾病预测)、公共服务(交通管理、灾害预测)、电子商务(客户分析、个性化推荐)、制造业(生产控制、优化)及农业(资源配置、生产效率)等多个领域。随着技术进步,应用范围将持续扩展,但需关注隐私保护和数据安全。
788 3
|
SQL 关系型数据库 数据建模
Dify数据库结构导出到PowerDesigner
Dify是开源大语言模型应用开发平台,助力快速构建生成式AI应用。PowerDesigner是SAP的企业级建模工具,用于数据建模、业务流程建模和企业架构规划。通过PostgreSQL的`pg_dump`导出表结构到SQL文件,然后在PowerDesigner中导入生成物理数据模型,从而实现Dify数据库结构到PowerDesigner的迁移。
829 1
|
存储 安全 测试技术
基于SSM+Vue的龙腾公司员工信息管理系统设计与实现(2)
基于SSM+Vue的龙腾公司员工信息管理系统设计与实现
188 0
【wavesurfer.js实战范例】多区域音频标注(含区域实时切换显示)
【wavesurfer.js实战范例】多区域音频标注(含区域实时切换显示)
382 0
|
缓存 Java API
深入理解JPA
深入理解JPA
486 0
|
机器学习/深度学习 Ubuntu Unix
配置工具篇(tmux+ranger+lazygit)
配置工具篇(tmux+ranger+lazygit)
318 0
配置工具篇(tmux+ranger+lazygit)