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上下文上运行