私はgrailsサービスを持っています:
MyService {
def sessionFactory
void someMethod() {
//...
sessionFactory.currentSession.createSQLQuery(sql);
//...
}
}
groovyスクリプト(src / groovyにあります)からこのサービスを呼び出したいです。grailsコマンドを介して呼び出します-grailstestrun-script src \ groovy\CallMyService.groovy。
この方法で呼び出された場合、sessionFactoryはnullになります(統合テストとして実行すると正常に機能します)。しかし、スクリプトを介して呼び出したいと思います。sessionFactoryをサービスに注入するにはどうすればよいですか?RunScript.groovyを変更してみました。たとえば、次のようになります。
def sessionFactory = appCtx.getBean("sessionFactory")
def session = SessionFactoryUtils.getSession(sessionFactory, true)
TransactionSynchronizationManager.bindResource(sessionFactory, new SessionHolder(session))
しかし、それは役に立ちませんでした。助けていただければ幸いです。