gpt4 book ai didi

spring - 如何在多线程环境中使用@Transactional

转载 作者:行者123 更新时间:2023-12-02 03:12:32 26 4
gpt4 key购买 nike

我正在使用多线程执行插入操作。我使用了带注释的我的方法 is@Transaction 注释。但我无法执行低于异常的插入操作。

Exception in thread "Thread-21" javax.persistence.TransactionRequiredException: Executing an update/delete query at org.hibernate.ejb.AbstractQueryImpl.executeUpdate(AbstractQueryImpl.java:96) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

最佳答案

由于没有代码......为了让它工作,你必须

  1. 使用 @Transactional 注释您的删除方法 - 我们称之为 delete
  2. 该方法的调用必须从 bean 外部进行,以便 AOP 启动

所以内部调用就像

void doSomething(){
this.delete();
}

不会工作

但是

@Autowired
YourBean bean;

...
bean.delete();

会完成工作

关于spring - 如何在多线程环境中使用@Transactional,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57214406/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com