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?
views:
607answers:
2
+2
A:
If it's in a service or controller, you just need to declare sessionFactory
def sessionFactory
to have it injected. After that you can refer to
sessionFactory.currentSession
to use it.
Check out hibernate-filter plugin (file HibernateFilterGrailsPlugin.groovy) for how to inject a bunch of methods that use the session.
Jean Barmash
2009-12-14 03:50:50
I'm specifically looking how to get it from a domain class static method. I don't want to have to get the session from the controller and pass it into the methods. That's so 1990s'
Andrew
2009-12-14 13:41:35
+3
A:
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
Burt Beckwith
2009-12-14 14:03:07