gpt4 book ai didi

hibernate - 从 groovy 脚本调用时将 sessionFactory 注入(inject) grails 服务

转载 作者:行者123 更新时间:2023-12-01 02:32:46 25 4
gpt4 key购买 nike

我有一个 grails 服务:

MyService {   
def sessionFactory
void someMethod() {
//...
sessionFactory.currentSession.createSQLQuery(sql);
//...
}
}

我想从 groovy 脚本(位于 src/groovy 中)调用此服务。我通过 grails 命令调用 - grails test run-script src\groovy\CallMyService.groovy。

sessionFactory 在以这种方式调用时为空(作为集成测试运行时它工作正常)。但我想通过脚本调用它。如何将 sessionFactory 注入(inject)服务?我尝试修改 RunScript.groovy,例如:
def sessionFactory = appCtx.getBean("sessionFactory")
def session = SessionFactoryUtils.getSession(sessionFactory, true)
TransactionSynchronizationManager.bindResource(sessionFactory, new SessionHolder(session))

但这没有帮助。任何帮助表示赞赏。

最佳答案

在使用 run-script 运行的脚本中,您应该能够通过以下方式获得服务:

myService = ctx.myService

如果 spring 正在管理您的服务, sessionFactory应该自动初始化。

关于hibernate - 从 groovy 脚本调用时将 sessionFactory 注入(inject) grails 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12077921/

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