javax.persistence.TransactionRequiredException: Executing an update/delete query
项目使用的hinernate框架,最近老是遇到些非常奇葩的问题,上午还能正常跑的项目下午突然不行了,一直报这个异常,看网上说是因为少添加了事务注解。
@Transcational
@Modify
@Query
但我加了没用。
也有让手动获取EntityManager添加事务提交的,但会报另一个异常:
Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB CMT
还有说因为配置文件扫描包没扫描到包导致的。
我全试了一遍,都没有用。
就在看了上百个相关问题濒临绝望的时候,突然想有没有可能是我新添加的定时任务功能相关的代码导致的,就把代码回退回去一点一点尝试,发现回退完代码项目又能跑了。最终找了了问题的根源,使用定时任务引入了task相关的配置,但由于我的粗心大意在添加配置信息的时候少打了个空格,影响到了其他的配置,最终导致整个项目的事务都失效了。
-.-!!!最终问题得以解决,粗心大意给自己挖的坑用了大半天去填。关键是这配置文件少个空格啥的也不报错 😂
如果你的项目也是突然出现的这个事务问题,不妨检查下是不是改动影响到了整体。