Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在带有@Async注释的方法中获取hibernate会话_Java_Spring_Spring Mvc - Fatal编程技术网

Java 如何在带有@Async注释的方法中获取hibernate会话

Java 如何在带有@Async注释的方法中获取hibernate会话,java,spring,spring-mvc,Java,Spring,Spring Mvc,我正在使用Spring 4.0.5 我想使用@Async方法执行一些db操作,但是数据没有保存,当我删除@Async注释时,它可以正常工作 我知道问题是因为hibernate会话在新线程中不可用。有谁知道同样的解决方案吗?我到底需要做什么 下面是代码片段 Controller.java taskExecutorService.insertLoginDetails(data); TaskExecutorService.java @Async public void insertLoginD

我正在使用Spring 4.0.5

我想使用@Async方法执行一些db操作,但是数据没有保存,当我删除@Async注释时,它可以正常工作

我知道问题是因为hibernate会话在新线程中不可用。有谁知道同样的解决方案吗?我到底需要做什么

下面是代码片段

Controller.java

taskExecutorService.insertLoginDetails(data);


TaskExecutorService.java

@Async
public void insertLoginDetails(LoginDetail data) {
  sessionFactory.getCurrentSession().save(data);
}
谢谢,
-bond

不要混合
@Async
@Transactional
方法,将
@Transactional
方法委托给新组件

难道你不能只注释你的方法
@Transactional
?没有理由不起作用。我尝试了使用异步+事务,但仍然没有成功。