在grails中,获取对当前hibernate会话的引用的最快方法是什么?

时间:2010-08-11 12:17:25

标签: hibernate spring grails spring-mvc

我有一个单例服务,在其唯一的方法中,我需要获取对绑定到当前请求的hibernate会话的引用。这样做最快的方法是什么?

2 个答案:

答案 0 :(得分:4)

我们通过以下方式实现:

import org.hibernate.Session;
import org.hibernate.SessionFactory;

public class YourService  {

    SessionFactory sessionFactory // set by Dependency Injection

    public void yourMethod() {
        Session session = sessionFactory.getCurrentSession();
        // do something with session
    }
}

如果您的服务位于grails-app / services目录中并以“Service”结束,则会由grails注入sessionFactory。

答案 1 :(得分:3)

或者只是

def someServiceMethod {
   SomeDomainObjectClass.withSession { session ->
     .....
   }
}

域对象是在grails-app / domain目录中定义的类。 session变量将在withSession闭包内获取当前的Hibernate Session引用。