我在网上看过各种各样的文章,但在这一点上它们似乎相当分散。在我的配置和我的方法中,我需要做什么才能获得hibernate会话。我正在尝试为存储过程进行一些直接的SQL调用。我有一个很大的代码库,我从Ruby移植了许多静态方法和存储过程调用。如果我需要使用sessionFactory,那么如何访问它呢?
答案 0 :(得分:25)
从静态方法中,您可以从应用程序上下文中提取sessionFactory bean:
import org.codehaus.groovy.grails.commons.ApplicationHolder as AH
...
def ctx = AH.application.mainContext
def sessionFactory = ctx.sessionFactory
def session = sessionFactory.currentSession
答案 1 :(得分:22)
如果它在服务或控制器中,您只需要声明sessionFactory
def sessionFactory
注入它。之后你可以参考
sessionFactory.currentSession
使用它。
查看hibernate-filter插件(文件HibernateFilterGrailsPlugin.groovy),了解如何注入一堆使用会话的方法。
答案 2 :(得分:12)