Search code examples
hibernategrailssessionfactory

In Grails how do I access the hibernate session inside of a domain class static method?


I've read various articles on the web, but they seem rather scattered on this point. Exactly what do I need to do in my configuration and in my method to get the hibernate session. I'm trying to make some direct sql calls for stored procedures. I have a large code base that I am porting from Ruby with lots of static methods and stored procedure calls. If I need to use the sessionFactory, then how to I get access to it?


Solution

  • From a static method you can pull the sessionFactory bean from the application context:

    import org.codehaus.groovy.grails.commons.ApplicationHolder as AH
    ...
    def ctx = AH.application.mainContext
    def sessionFactory = ctx.sessionFactory
    def session = sessionFactory.currentSession