最开始出现这个错误的时候,查询了一些资料,发现是没有在方法上面加@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三种配置方法以及结果如下:

  1. 两个方法都配置 @Transactional:程序正常运行
  2. 只在initUser()方法配置 @Transactional:程序正常运行
  3. 只在add()方法配置 @Transactional:程序报错,javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call

总结如下:

  1. @Transactional必须修饰公有方法;
  2. @Transactional必须修饰同一个类中最大的一个方法(最大指的是方法调用的起点)

只是个人的一些分析和总结,如果有不正确的地方,欢迎讨论和指教。

关于调用entityManager.persist()方法报错,cannot reliably process 'persist' call相关推荐

  1. vue父组件调用子组件方法报错的解决方法

    vue父组件调用子组件方法报错 在父组件定义了一个tab标签页,每一个标签页下面都调用不同的组件,如下图所示: 子组件中定义的方法: setup() {const getList = () => ...

  2. [转载] python 调用自己的方法报错,numpy.ndarray object has no attribute brighten

    参考链接: Python中的numpy.eye 在使用python写美颜算法时,出现一个bug,AttributeError: 'numpy.ndarray' object has no attrib ...

  3. MyBatis-Plus调用插入Insert()方法报错

    调用Insert方法竟然报错了,整得一脸懵逼,报错信息如下: Servlet.service() for servlet [dispatcherServlet] in context with pat ...

  4. Android N调用系统安装APK方法报错原因整理及解决方案

    最近在做App的改版(由系统App改为普通App)过程中,经原来的静默安装方式改为调用系统普通安装APK的方式时,报错了,堆栈信息如下: fatal error java.lang.IllegalAr ...

  5. echarts中graphic_vue项目中引入echart 调用其graphic方法报错的问题

    index.js中引入echart 在页面当中想要使用echart方法 const lineOpts = { //鼠标移上去时的提示框 tooltip: { trigger: 'axis', text ...

  6. 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 ...

  7. torchtext Filed 方法报错解决办法

    torchtext Filed 方法报错解决办法 问题1 拿到的源代码是这样的 报错: AttributeError: module 'torchtext.data' has no attribute ...

  8. java 实现接口后重写方法报错

    java 实现接口后重写方法报错 java 实现接口后重写方法报错 The method contextDestroyed(ServletContextEvent) of type InitListe ...

  9. python3中input()方法报错traceback变量未定义的解决方法

    python3中input()方法报错traceback变量未定义的解决方法 参考文章: (1)python3中input()方法报错traceback变量未定义的解决方法 (2)https://ww ...

最新文章

  1. python入门基础代码图-适合Python入门的5本基础书籍
  2. hls fifo_【正点原子FPGA连载】第一章HLS简介--领航者ZYNQ之HLS 开发指南
  3. RUBY ON RAILS 插件收录: CACHE:Sweeper Generator
  4. java的选项板_CAD工具选项板的介绍以及新建方法
  5. nodejs 前端 返回数组给_互联网寒冬,一年经验字节跳动、虾皮、快手、拼多多前端面试总结...
  6. Erlang 二十年,如何在编程语言中占据一席之地?
  7. 使用electron-builder来打包
  8. html5 Canvas 绘制基本图形 从直线图形到使用路径 - 直线、矩形、路径、多边形、复杂组合图形
  9. Photo Size Changer三步压缩太大的jpg照片
  10. Linq to xml修改CDATA节点值
  11. Windows8中pid为4的system进程占用80端口的解决办法
  12. 在线压缩图片---*.jpg *.png
  13. Domain Adaptation
  14. matlab中subs怎么用,【转】MATLAB中subs函数效率低
  15. 无法解析的外部符号 _transfer_8to16copy_3dne
  16. 基于深度学习的医学图像分割(一)
  17. ImportError: cannot import name ‘_validate_lengths‘ from ‘numpy.lib.arraypad‘完美解决方法
  18. Android_Message里面彩信图片的压缩方法
  19. MYSQL登录遇到的问题:解决ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost:3306‘(10061)
  20. android的wifi网卡移植详细过程已经通用驱动的问题

热门文章

  1. BZOJ3840: ZCC Loves COT
  2. mysql查询为null或者空字符串
  3. 数据量单位------KB/MB/GB/TB/PB/EB/ZB/YB/BB
  4. 面试时如何自我介绍【面试核心问题1】
  5. Solr Searching
  6. javaScript中递归和arguments.callee
  7. 2021-2027中国铁路牵引系统市场现状及未来发展趋势
  8. 共享汽车租赁系统(SSM,JSP,MYSQL)
  9. 买东西被坑了?python采集数据详情,不在害怕~
  10. Java+Selenium3方法篇12-findElement之By TagName