No EntityManager with actual transaction available for current thread - cannot reliably process 'remove' call

背景:

使用jpa编写删除方法时出现报错

代码:

int deleteUserByUserName(String username);

报错:

Exception in thread "main" org.springframework.dao.InvalidDataAccessApiUsageException: No EntityManager with actual transaction available for current thread - cannot reliably process 'remove' call; nested exception is javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'remove' callat org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:403)at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235)at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551)at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)at com.sun.proxy.$Proxy105.deleteUserByUserName(Unknown Source)at com.asdwjl.springboot.service.UserService.deleteUser(UserService.java:56)at com.asdwjl.springboot.Application.main(Application.java:41)
Caused by: javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'remove' callat org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:295)at com.sun.proxy.$Proxy97.remove(Unknown Source)at org.springframework.data.jpa.repository.query.JpaQueryExecution$DeleteExecution.doExecute(JpaQueryExecution.java:277)at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90)at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155)at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143)at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137)at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121)at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:159)at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:138)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:80)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)... 9 more

报错原因:

JPA接口deleteUserByUserName(String username)没有使用事务管理

解决办法:

deleteUserByUserName(String username)接口上使用注解@Modifying和@Transactional

    @Modifying@Transactionalint deleteUserByUserName(String username);

jpa 报错:No EntityManager with actual transaction available for current thread - cannot reliably proce相关推荐

  1. No EntityManager with actual transaction available for current thread - cannot reliably process ‘rem

    [spring data jpa]使用spring data jpa 的删除操作,需要加注解@Modifying @Transactional 否则报错如下: No EntityManager wit ...

  2. 解决No EntityManager with actual transaction available for current thread

    问题描述: 在使用JPA执行删除操作时报错: No EntityManager with actual transaction available for current thread - canno ...

  3. 【Spring】actual transaction available for current thread - cannot reliably process ‘remove‘ call

    1.场景1 1.1 概述 一段代码大概是这样的 service 层 @Transactional public void delAndAdd(){repo1.deleteByModule(" ...

  4. Caused by: javax.persistence.TransactionRequiredException: No EntityManager with actual transaction

    这是笔者把jpa的默认事务关闭后删除数据一个接口爆出的异常信息"Caused by: javax.persistence.TransactionRequiredException: No E ...

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

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

  6. 报错expect ‘:‘ at 0, actual =

    jsonObject中获取的数组转化JSONArray 报错expect ':' at 0, actual = 问题代码 JSONArray dataArray = JSONArray.parseAr ...

  7. git pull 下拉代码报错 There is no tracking information for the current branch. Please specify which branc

    git pull 下拉代码报错 There is no tracking information for the current branch. Please specify which branch ...

  8. mysql 1126报错 User 'root' has exceeded the 'max_questions' resource (current value: 10000)

    mysql 1126报错 User 'root' has exceeded the 'max_questions' resource (current value: 10000) 最近在项目中,从de ...

  9. Redisson报异常attempt to unlock lock, not locked by current thread by node id解决方案

    Redisson报异常attempt to unlock lock, not locked by current thread by node id解决方案 问题背景 解决方案 总结 Lyric: 那 ...

最新文章

  1. 生成ftp文件的目录树
  2. google nexus5x 刷机抓包逆向环境配置(二)
  3. linux环境没有bzip2,Linux系统中安装使用Bzip2来压缩文件的方法讲解
  4. yii::$app-mongodb 查询纪录数_老詹总决赛有多强?12项数据领先乔丹科比,已握10项数据纪录...
  5. 时序竞态(竞态条件)
  6. Secondary Namenode的Check point机制以及Namenode、Datanode工作机制说明
  7. mysql一定要联网吗_最新版的mysql5.7,网上的安装教程是要联网的,如果没有网络,在安装前需要安装哪些组件呢?...
  8. c语言那些细节之little-endian和big-endian
  9. 电子商务B2C:尾巴上的比特生存法则
  10. ps界面为啥突然变大了_【新手必看】使用PS绘画需要学会哪些基本操作?
  11. kindle电子书200G分享
  12. 学习java第20天
  13. 源码剖析Redis中如何使用跳表的
  14. 基于php+mysql的校园木本植物检索查询统
  15. 计算机维修的入门知识
  16. npm下载依赖时的问题
  17. Laravel 5.8 前瞻 1
  18. bps、pps、fps
  19. vin-slam中调用ceres库内部代码分析与性能优化
  20. HDRP打包后材质黑色问题

热门文章

  1. 计算机恢复原始桌面图标,电脑界面图标怎么恢复成最原始的样子?
  2. Visual Stdio 2022如何打开监视窗口?
  3. git branch -D 大写的D 删除分支
  4. 安卓虚拟键盘_安卓手机开启全局手势导航的方法,拯救老设备
  5. GNVM版本下载太慢用淘宝镜像速度提百倍哈
  6. 圆桌实录:技术无感化成为 2023 年最值得开发者和企业用户关注的技术趋势丨PingCAP DevCon 2022
  7. 转 新入职程序员心得
  8. 【ASH】如何导出视图DBA_HIST_ACTIVE_SESS_HISTORY的查询结果数据
  9. D55_BMS_IntefaceBoard_RevA接口板电路设计图
  10. Fate集群 | 基于MNIST数据集的模型训练+模型预测 详细过程