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