关于调用entityManager.persist()方法报错,cannot reliably process 'persist' call
最开始出现这个错误的时候,查询了一些资料,发现是没有在方法上面加@Transactional注解,加上之后发现还是出现同样的异常,再次查询资料,发现@Transactional只对公有的方法有效,其他权限访问修饰符的方法无效但是不报错(如果放在类上,则只有公有方法会生效),而我的方法是默认的修饰符,改为public之后仍然报错,代码逻辑大概是这个样子(因为代码比较复杂,就大概举个例子)
public void initUser(Long id,String name){User user = new User();user.setId(id);user.setName(name);add(user);
}public void add(User user){this.entityManager.persist(user);
}
这里是两个public的方法,是在同一个类当中, @Transactional三种配置方法以及结果如下:
- 两个方法都配置 @Transactional:程序正常运行
- 只在initUser()方法配置 @Transactional:程序正常运行
- 只在add()方法配置 @Transactional:程序报错,javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call
总结如下:
- @Transactional必须修饰公有方法;
- @Transactional必须修饰同一个类中最大的一个方法(最大指的是方法调用的起点)
只是个人的一些分析和总结,如果有不正确的地方,欢迎讨论和指教。
关于调用entityManager.persist()方法报错,cannot reliably process 'persist' call相关推荐
- vue父组件调用子组件方法报错的解决方法
vue父组件调用子组件方法报错 在父组件定义了一个tab标签页,每一个标签页下面都调用不同的组件,如下图所示: 子组件中定义的方法: setup() {const getList = () => ...
- [转载] python 调用自己的方法报错,numpy.ndarray object has no attribute brighten
参考链接: Python中的numpy.eye 在使用python写美颜算法时,出现一个bug,AttributeError: 'numpy.ndarray' object has no attrib ...
- MyBatis-Plus调用插入Insert()方法报错
调用Insert方法竟然报错了,整得一脸懵逼,报错信息如下: Servlet.service() for servlet [dispatcherServlet] in context with pat ...
- Android N调用系统安装APK方法报错原因整理及解决方案
最近在做App的改版(由系统App改为普通App)过程中,经原来的静默安装方式改为调用系统普通安装APK的方式时,报错了,堆栈信息如下: fatal error java.lang.IllegalAr ...
- echarts中graphic_vue项目中引入echart 调用其graphic方法报错的问题
index.js中引入echart 在页面当中想要使用echart方法 const lineOpts = { //鼠标移上去时的提示框 tooltip: { trigger: 'axis', text ...
- Python调用seek(pos,mode)方法报错Can‘t do nonzero cur-relative seeks
在Python中IO操作调用seek(pos,mode)方法时,出现异常错误:OSError:Can't do nonzero cur-relative seeks其示例代码如下: from io i ...
- torchtext Filed 方法报错解决办法
torchtext Filed 方法报错解决办法 问题1 拿到的源代码是这样的 报错: AttributeError: module 'torchtext.data' has no attribute ...
- java 实现接口后重写方法报错
java 实现接口后重写方法报错 java 实现接口后重写方法报错 The method contextDestroyed(ServletContextEvent) of type InitListe ...
- python3中input()方法报错traceback变量未定义的解决方法
python3中input()方法报错traceback变量未定义的解决方法 参考文章: (1)python3中input()方法报错traceback变量未定义的解决方法 (2)https://ww ...
最新文章
- python入门基础代码图-适合Python入门的5本基础书籍
- hls fifo_【正点原子FPGA连载】第一章HLS简介--领航者ZYNQ之HLS 开发指南
- RUBY ON RAILS 插件收录: CACHE:Sweeper Generator
- java的选项板_CAD工具选项板的介绍以及新建方法
- nodejs 前端 返回数组给_互联网寒冬,一年经验字节跳动、虾皮、快手、拼多多前端面试总结...
- Erlang 二十年,如何在编程语言中占据一席之地?
- 使用electron-builder来打包
- html5 Canvas 绘制基本图形 从直线图形到使用路径 - 直线、矩形、路径、多边形、复杂组合图形
- Photo Size Changer三步压缩太大的jpg照片
- Linq to xml修改CDATA节点值
- Windows8中pid为4的system进程占用80端口的解决办法
- 在线压缩图片---*.jpg *.png
- Domain Adaptation
- matlab中subs怎么用,【转】MATLAB中subs函数效率低
- 无法解析的外部符号 _transfer_8to16copy_3dne
- 基于深度学习的医学图像分割(一)
- ImportError: cannot import name ‘_validate_lengths‘ from ‘numpy.lib.arraypad‘完美解决方法
- Android_Message里面彩信图片的压缩方法
- MYSQL登录遇到的问题:解决ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost:3306‘(10061)
- android的wifi网卡移植详细过程已经通用驱动的问题
热门文章
- BZOJ3840: ZCC Loves COT
- mysql查询为null或者空字符串
- 数据量单位------KB/MB/GB/TB/PB/EB/ZB/YB/BB
- 面试时如何自我介绍【面试核心问题1】
- Solr Searching
- javaScript中递归和arguments.callee
- 2021-2027中国铁路牵引系统市场现状及未来发展趋势
- 共享汽车租赁系统(SSM,JSP,MYSQL)
- 买东西被坑了?python采集数据详情,不在害怕~
- Java+Selenium3方法篇12-findElement之By TagName