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

后端 未结 3 1076
借酒劲吻你
借酒劲吻你 2021-02-03 12:44

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 ses

相关标签:
3条回答
  • 2021-02-03 12:53

    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
    
    0 讨论(0)
  • 2021-02-03 12:59

    You can use withSession

    Book.withSession { session ->
        session.clear()
    }
    

    More info

    0 讨论(0)
  • 2021-02-03 13:09

    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.

    0 讨论(0)
提交回复
热议问题