Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.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 (未能延迟初始化集合,没有会话或会话已关闭)grails 1.3.7中quartz-0.4.2中的错误_Java_Hibernate_Grails_Gorm_Quartz Scheduler - Fatal编程技术网

Java (未能延迟初始化集合,没有会话或会话已关闭)grails 1.3.7中quartz-0.4.2中的错误

Java (未能延迟初始化集合,没有会话或会话已关闭)grails 1.3.7中quartz-0.4.2中的错误,java,hibernate,grails,gorm,quartz-scheduler,Java,Hibernate,Grails,Gorm,Quartz Scheduler,工作 class PicSchedulerJob { def myDataService def springSecurityService static triggers = { simple name:'picsJob', startDelay:1000,repeatInterval:30*60*1000 } def group = "icsJobGroup" def

工作

 class PicSchedulerJob {
        def myDataService
        def springSecurityService
        static triggers = {
            simple name:'picsJob', startDelay:1000,repeatInterval:30*60*1000 
        }
        def group = "icsJobGroup"

        def execute() {

            def userList=User.list()
            userList?.each{User user->  
                def fullList= Album.findAllByUser(user) 
                springSecurityService.reauthenticate(user.username)
                fullList?.each{Album a->
                    myDataService.removePicsFilter( a)          
                }

            }
        }
    }
方法:

def removePicsFilter(Album a){
        def tempList=a.photo
        int siz=tempList.size()?:0
        for(int i=0;i<siz;i++)  {
            Photo photodb=tempList[i]
            PhotoConnection photoConnection=PhotoConnection.findByPhoto(photodb)
                photoConnection?.tags.each{
                    Tag t=Tag.get(it.id)
                    t.delete()
                    }


        }
        a.save(validate:true,flush:true)
    }
def removePicsFilter(相册a){
def templast=a.photo
int siz=templast.size()?:0
对于(inti=0;我希望这会有所帮助

在事务中使用Hibernate.initialize()初始化惰性对象

 start Transaction 
      Hibernate.initialize(album.photo());
 end Transaction 

 out of Transaction
   tempList=album.photo

问题是Hibernate会话未打开或已关闭。 请通过链接

也可能是对象从hibernate会话中分离。您可以尝试以下方法:

将对象重新附加到hibernate会话,如下所示:object.attach()()
使两个域类之间的关联非惰性()

问题在哪里?@Patrick Job是quartz作业代码,Job调用的方法代码,它的错误是我面临的错误。我也尝试了Album.withTransaction和Album.withSession的代码,但无法修复。请指导我。你可以通过询问SSCCE来改进你的问题:。@james.garris我是新来叠加流量的。这是吗现在最好确切地说明您的问题是什么,发生在哪里,正在做什么,以及您希望它做什么。仅仅显示堆栈跟踪是不够的。但您走的是正确的道路。继续改进!谢谢,这实际上帮助我解决了Grails中的一个问题,在会话关闭后延迟加载hasMany关联。只是初始化关联成功了!