Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/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 春季石英作业中的休眠会话_Spring_Hibernate_Quartz Scheduler - Fatal编程技术网

Spring 春季石英作业中的休眠会话

Spring 春季石英作业中的休眠会话,spring,hibernate,quartz-scheduler,Spring,Hibernate,Quartz Scheduler,TL;DR:是否需要围绕Quartz作业调用手动设置Hibernate会话? 我在Spring中运行了quartz调度程序,但在quartz作业中使用Hibernate时,它的行为非常奇怪 我有JPA存储库,按如下方式使用这些存储库可以正常工作 Reservation reservation = reservationRepo.findOne(resId); 但是,当我尝试按如下方式使用此实体时,会出现后续异常 User owner = reservation.getRoom().getOwn

TL;DR:是否需要围绕Quartz作业调用手动设置Hibernate会话?

我在Spring中运行了quartz调度程序,但在quartz作业中使用Hibernate时,它的行为非常奇怪

我有JPA存储库,按如下方式使用这些存储库可以正常工作

Reservation reservation = reservationRepo.findOne(resId);
但是,当我尝试按如下方式使用此实体时,会出现后续异常

User owner = reservation.getRoom().getOwner(); 
例外情况:

org.hibernate.LazyInitializationException: could not initialize proxy - no Session
如果我将spring日志设置为
TRACE
,我会看到一些JPA/Transaction/Thread魔术,但似乎每个对所用bean的调用都会进行排序,并且线程上不存在托管的hibernate会话


我是否需要围绕Quartz作业调用创建一个Hibernate会话?

我认为您在
Quartz作业中使用的
保留
对象加载到不同的事务中?您是否有权在您可以调用的
merge
方法中访问
Quartz作业中的
Hiberate Session
?您的方法需要是事务性的。@madhusudanareddysunapu谢谢,但这两行代码在Quartz作业中相邻。@M.Deinum谢谢,这是答案。由于EventBus实现,我有一定程度的间接性,这导致了事务性的问题。事实证明,创建事务服务来处理作业是成功的。请随意创作和回答,我会接受的。