gpt4 book ai didi

java - (无法延迟初始化集合,没有 session 或 session 已关闭)grails 1.3.7 中的 quartz-0.4.2 错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:15:59 25 4
gpt4 key购买 nike

工作

 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)
}

Error:2013-12-06 20:20:59,618 [quartzScheduler_Worker-5] ERROR hibernate.LazyInitializationException - 延迟初始化集合失败,没有 session 或 session 已关闭org.hibernate.LazyInitializationException:延迟初始化集合失败,没有 session 或 session 已关闭 在 org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:380)

Job 是 quartz 作业代码,作业调用的方法代码,它的错误是我面临的错误..我也尝试使用 Album.withTransaction 和 Album.withSession 的代码,但无法修复它。请在这方面指导我

最佳答案

问题是 Hibernate session 未打开或已关闭。请通过链接 http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/performance.html#performance-fetching-lazy

也可能是对象从 hibernate session 中分离出来的情况。你可以试试这个:

像这样将对象附加回 hibernate session :object.attach() ( http://grails.org/doc/2.2.1/ref/Domain%20Classes/attach.html )使两个域类之间的关联成为非惰性关联(http://grails.org/doc/2.2.x/ref/Database%20Mapping/lazy.html)

关于java - (无法延迟初始化集合,没有 session 或 session 已关闭)grails 1.3.7 中的 quartz-0.4.2 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20427118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com