springboot学习总结(十三)jpa事务

vincentren vincentren     2022-12-07     498

关键词:

(一)java异常

  Throwable这个Java类被用来表示任何可以作为异常被抛出来的类。Throwable对象可分为两种类型(指从Throwable继承而得到的类型):Error用来表示编译时和系统错误(除特殊情况外,一般不用关心);Exception是可以被抛出的基本类型。所以Java程序员关心的基类型通常是Exception。

  Exception中有一个特例:RuntimeException。属于RuntimeException的类型很多,他们会自动被Java虚拟机抛出,所以不必在异常说明中把它们列出来(例:NullPointerException),因为RuntimeException异常不需要在异常说明中申明方法将抛出RuntimeException类型的异常,他们也被称为“unchecked exceptions”,看下面的demo就看懂了

    /**
     * RuntimeException不需要在方法上申明
     */
    public void uncheckedException()
        throw new RuntimeException();
    

    /**
     * 非RuntimeException需要在方法上申明或者在方法体上用try..catch包起来
     * @throws Exception
     */
    public void checkedExceptions() throws Exception 
        throw new Exception();
    

技术图片

 

 图片找的网上的(地址:https://www.pianshen.com/article/93521095041/

(二)springboot的事务

1、什么都不加

看下面的代码

    @Override
    @Transactional
    public void saveAuthorNotRollRack(Author author) throws Exception 
        //不会回滚
        authorDao.save(author);
        throw new Exception("author error");
    


    @Override
    @Transactional
    public void saveAuthorRuntimeRollRack(Author author)
        //会回滚
        authorDao.save(author);
        throw new NullPointerException();
    

如果@Transactional没有加回滚的条件(rollbackFor),那么只有抛出RuntimeException或者Error时才会回滚,其他异常不会回滚。

2、指定异常回滚

 

3、指定异常不回滚

 

jpa出现transactionmarkedasrollbackonly异常总结

总结:一个事务方法A调用另一个事务方法B时,B如果报错事务就已经是回滚状态了,放回到A之后,A方法继续执行,提交了事务(已经是回滚状态的事务),就报错了Transactionmarkedasrollbackonly。参考... 查看详情

如何在单一方法Springboot JPA中实现多个更新的事务

】如何在单一方法SpringbootJPA中实现多个更新的事务【英文标题】:HowtoimplementTransactionalformultipleupdatesinsinglemethodSpringbootJPA【发布时间】:2021-11-2120:47:33【问题描述】:我有一个使用SPringbootJPA对DB进行多次更新、删除和保存方法... 查看详情

springboot学习总结二(代码片段)

...的一些特性,因此有着丰富的应用场景。本文介绍Redis在SpringBoot中两个典型的应用场景,cache的配置类:@Conf 查看详情

springboot|遇坑总结|jpa(代码片段)

1.   Causedby:org.hibernate.HibernateException:AccesstoDialectResolutionInfocannotbenullwhen‘hibernate.dialect‘notset  在配置文件中添加:spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect&nb 查看详情

学习总结(三十三)

1.守护进程     1)什么是守护进程         进程是一个正在运行的程序,守护进程也是一个进程,守护进程的意思就是一个进程保护另一个进程     2)守护进程使用... 查看详情

Spring Boot + Spring Data JPA + 事务无法正常工作

】SpringBoot+SpringDataJPA+事务无法正常工作【英文标题】:SpringBoot+SpringDataJPA+Transactionsnotworkingproperly【发布时间】:2015-04-2019:20:50【问题描述】:我使用1.2.0版本和spring-boot-starter-data-jpa创建了一个SpringBoot应用程序,并且我正在使用... 查看详情

如何在不使用 JPA 的情况下保持在 SpringBoot/GraphQL 中打开的 Hibernate 事务?

】如何在不使用JPA的情况下保持在SpringBoot/GraphQL中打开的Hibernate事务?【英文标题】:HowdoIkeepHibernatetransactionopenedinSpringBoot/GraphQLwithoutusingJPA?【发布时间】:2019-12-2918:34:23【问题描述】:我正在使用GraphQL来重建我的REST应用程序... 查看详情

Spring boot + Hibernate + JPA 没有可用的事务性 EntityManager

】Springboot+Hibernate+JPA没有可用的事务性EntityManager【英文标题】:Springboot+Hibernate+JPANotransactionalEntityManageravailable【发布时间】:2015-09-1614:28:04【问题描述】:我使用SpringBoot1.2.3.RELEASE版本和JPAoverhibernate。我遇到以下异常org.springfra... 查看详情

javascript学习总结(二十三)——javascript内存泄漏教程

 参考教程:http://www.ruanyifeng.com/blog/2017/04/memory-leak.html 一、什么是内存泄漏?程序的运行需要内存。只要程序提出要求,操作系统或者运行时(runtime)就必须供给内存。对于持续运行的服务进程(daemon),必须及时释放... 查看详情

两小时上手springboot(开发红包程序———通过jpa连接mysql,事务等内容)遇到的问题

课程链接—https://www.imooc.com/video/20548  开发中遇到的问题:  解决方法:在配置文件(proprites文件或yml文件)中的数据库url中添加:&serverTimezone=UTC如图:   查看详情

python基础学习第十三节异常操作总结(代码片段)

Python基础学习之异常操作总结在Python运行遇到异常时,程序会终止;而在我们编程过程中,错误是不可避免的,这时我们需要捕捉到异常,还需要程序继续运行;这时我们就需要根据异常Traceback到出错点,进行分析改正;1.异常... 查看详情

gui学习之二十三——qdialog学习总结(代码片段)

今天学习对话框输入控件的基类(QDialog)。一.描述是对话类窗口(字体框、颜色选择、文件选择框等)的基类。对话框窗口是顶级窗口(就是说不包含于哪个父类的显示界面里),主要用于短期任务和与用户的短期通信。QDialogs是可以... 查看详情

springboot系列springboot配置全局事务处理(代码片段)

六、SpringBoot配置全局事务处理6.1SringBoot声明式事务6.2@Transactional注解的常用属性:6.3事务传播行为propagation6.4配置全局事务6.1SringBoot声明式事务SpringBoot开启声明式事务,只需要一个@Transactional就可以。因为在SpringBoot... 查看详情

vue3学习总结笔记(十三)(代码片段)

文章目录1.Vue3简介2.创建Vue3项目工程2.1使用Vue-cli创建2.2使用Vite创建Vue3工程3.Vue3之分析工程结构3.Vue3之安装开发者工具4.Vue3之setup5.Vue3之ref函数5.1ref函数处理基本数据类型5.2ref函数处理对象类型6.Vue3之reactive函数7.Vue3之与vue2进行... 查看详情

vue3学习总结笔记(十三)(代码片段)

文章目录1.Vue3简介2.创建Vue3项目工程2.1使用Vue-cli创建2.2使用Vite创建Vue3工程3.Vue3之分析工程结构3.Vue3之安装开发者工具4.Vue3之setup5.Vue3之ref函数5.1ref函数处理基本数据类型5.2ref函数处理对象类型6.Vue3之reactive函数7.Vue3之与vue2进行... 查看详情

整合springboot+kotlin+gradle+jpa的demo学习笔记(代码片段)

jpa其实就是JavaPersistenceAPI的缩写。jpa的中文名字叫做Java持久层API,jpa是JDK5.0注解或者是XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。JPA的宗旨是为POJO提供持久化标准规范,JPA的总体思想... 查看详情

整合springboot+kotlin+gradle+jpa的demo学习笔记(代码片段)

jpa其实就是JavaPersistenceAPI的缩写。jpa的中文名字叫做Java持久层API,jpa是JDK5.0注解或者是XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。JPA的宗旨是为POJO提供持久化标准规范,JPA的总体思想... 查看详情

从零开始学习springboot(myqsl链接+端口修改+jpa映射)

1.修改端口号:在application.properties文件添加:server.port=9090 就能将端口号修改为90902.连接数据库:2.1:修改pom.xml 添加2.2:application.properties文件添加:  ########################################################  ###dataso 查看详情