在Spring Boot 中,将 @SpringBootTest 注解加载测试类中可以很方便的进行测试。

如果是JPA的数据操作, 则测试方法执行时会报 No EntityManager with actual transaction available for current thread 的错误, 翻译一下就是“当前线程没有事务支持”。

解决方法时在测试类或是方法上增加注解:@Transactional

再执行如下测试方法:

 @Testpublic void add() {Usr usr = new Usr(1,"张三",1);entityManager.persist(usr);}

方法是成功执行了, 但是查询数据库表却没有数据。 原因是:Spring Test 对数据库的操作在方法执行完成后会回滚事务, 也就是数据不会实际写入到Db , 这个设计其实也很合理。 特别是在实际环境中, 如果不可避免的要在正式环境中测试, 这种设计会比较安全。
如果实在要在Test 写入Db, 则需要增加 @Rollback(false) 注解。

综合起来, 如果要在Test 要插入数据到Db , 需要以下两个注解:

@Transactional
@Rollback(false)
public class JpqlTests {
}
  • @Transactional ,开启事务, 这是JPA 的标准注解
  • @Rollback(false) , Spring Test的专属注解, 不会回滚, 也就是实际写入到数据库。 在实际业务代码中不可使用。

注: 这两个注解也可以使用在测试方法上, 只对该测试类的某个方法生效。



Spring Boot Test 进行JPA 测试保存数据到数据库相关推荐

  1. 78. Spring Boot完美使用FastJson解析JSON数据【从零开始学Spring Boot】

    [原创文章,转载请注明出处] 个人使用比较习惯的json框架是fastjson,所以spring boot默认的json使用起来就很陌生了,所以很自然我就想我能不能使用fastjson进行json解析 ...

  2. Spring Boot下使用JPA报错:'hibernate.dialect' not set的解决办法

    问题现象: Spring Boot下使用JPA报错:'hibernate.dialect' not set 原因是: 没有设置数据库方言导致的 解决方案: 1.如果配置文件格式为application ...

  3. Spring Boot通过配置文件区分测试和生产环境

    Spring Boot通过配置文件区分测试和生产环境 方法一:我们定义三个配置文件,一个是开发,我们定位为:application-dev.yml,另一个是生产,我们定义为application-pr ...

  4. java 保存数据到数据库_保存数据到数据库成功

    保存数据到数据库成功 package com.demo; import javax.swing.AbstractButton; import javax.swing.JFrame;//框架 impor ...

  5. Spring Boot+微信小程序_保存微信登录者的个人信息

    1. 前言 微信小程序开发平台,提供有一类 API,可以让开发者获取到微信登录用户的个人数据.这类 API 统称为开放接口. Tip:微信小程序开发平台,会把微信登录用户的个人信息分为明文数据和敏感数 ...

  6. Spring Boot基于注解方式处理接口数据脱敏

    1.定义注解 创建Spring Boot项目添加以下依赖 <dependencies><dependency><groupId>org.springframewor ...

  7. Spring Boot项目利用MyBatis Generator进行数据层代码自动生成

    概 述 MyBatis Generator (简称 MBG) 是一个用于 MyBatis和 iBATIS的代码生成器.它可以为 MyBatis的所有版本以及 2.2.0之后的 iBATIS版本自动生成 ...

  8. 在Spring Boot应用程序中测试邮件代码

    在构建Spring Boot应用程序时,您可能会需要添加邮件配置. 实际上,在Spring Boot中配置邮件与在Spring Bootless应用程序中配置邮件没有太大区别. 但是,如何测试邮件配置 ...

  9. Spring Boot 如何组装一个树结构的数据?

    导语   项目中出现需求要求返回一个树结构的数据到页面中,但是再数据库设计的时候我们使用的是id与父id的结构来进行存储的,所以说需要有一个简单的数据结构的转换,那么在Spring Boot中如何实现 ...

最新文章

  1. Class文件结构amp;字节码指令
  2. Symbian编程VC开发环境设置
  3. python中concat的用法_python pandas concat用法及代码示例
  4. 计算机科学与技术在海南,2017年怀化学院计算机科学与技术专业在海南录取分数线...
  5. 【Kudu-未解决】Kudu : Kudu error: Could not connect to a leader master. Client configured with 1 master
  6. Oracle RAC的Failover
  7. 开源流媒体系统:OBS ( Open Broadcaster Software ) 介绍
  8. jQuery中return false e preventDefault e stopPropagation 的区
  9. 易语言皮肤模块200个_S7200 SMART 模拟量模块种类amp;选型须知
  10. atitit.添加win 系统服务 bat批处理程序服务的法总结instsrv srvany java linux
  11. 前嗅教你大数据——史上最全代理IP服务商对比
  12. 计算机远程控制安全吗,远程控制电脑危险吗?向日葵远程控制软件安全吗?
  13. pdm系统是归档服务器吗,PDM系统的主要功能
  14. 2022快手春节跳一跳红包到 怎么获得66元红包?
  15. Python 爬取百万网易云音乐热门评论
  16. MOS管做二极管使用
  17. AI绘图:chatGpt,midjourney, discord
  18. 拥有微软Windows CE的实时系统
  19. 解决 这些文件可能对你的计算机有害问题
  20. 阿里云视频直播推流和播流地址生成

热门文章

  1. smokeping主从同步报错
  2. 生命太短暂,我没时间讨厌你
  3. FOJ 1887 景区摊位安排问题
  4. win2003服务器中:无法连接ACCESS数据库/sql数据库正常 .net程序生成的dll文件拒绝访问问题...
  5. 转载sanmusoft 论电脑报论坛的挂掉及电脑报的最后倒掉
  6. 使用 PDBDownloader 解决 IDA 加载 ntoskrnl.exe 时符号不完全问题
  7. Motion and Optical Flow
  8. 达摩院李雅亮:大规模预训练模型的压缩和蒸馏
  9. wifi定位算法 java_几种室内定位技术方案对比,室内定位种类的优缺点一目了然...
  10. Tiktok下载量激增至20亿次,视频带货或将席卷海外,跨境电商的风口