Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.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
Spring 如何在单个线程中跨多个事务保持EntityManager/会话打开?_Spring_Spring Boot_Spring Data - Fatal编程技术网

Spring 如何在单个线程中跨多个事务保持EntityManager/会话打开?

Spring 如何在单个线程中跨多个事务保持EntityManager/会话打开?,spring,spring-boot,spring-data,Spring,Spring Boot,Spring Data,在@Service组件中的@Transactional方法之后,是否有任何方法可以防止spring数据关闭底层hibernate会话?我正在编写一个简单的命令行应用程序,它从web服务读取数据,进行一些处理并写入数据库。有些操作跨越多个实体,必须是事务性的 但是,我遇到了太多的LazyLoadingExceptions。显然,在事务提交后,spring会自动关闭hibernate会话 换句话说,我试图实现的是类似于OpenSessionInView的东西,但是对于命令行应用程序来说。我可以通过使

@Service
组件中的
@Transactional
方法之后,是否有任何方法可以防止spring数据关闭底层hibernate会话?我正在编写一个简单的命令行应用程序,它从web服务读取数据,进行一些处理并写入数据库。有些操作跨越多个实体,必须是事务性的

但是,我遇到了太多的
LazyLoadingExceptions
。显然,在事务提交后,spring会自动关闭hibernate会话


换句话说,我试图实现的是类似于OpenSessionInView的东西,但是对于命令行应用程序来说。我可以通过使用纯JPA和手动处理实体管理器和事务来实现这一点。但是,我想知道是否有一种解决方案能够利用spring数据并仍然实现所需的行为。

在spring boot中,默认情况下
spring.jpa.open In view=true
。这将启用您正在调用的OpenSessionInView,除非您显式将其设为false。@Madhusudanareddysunapu这是一个命令行应用程序,不在web上下文上运行