В Grails, какой самый быстрый способ получить ссылку на текущий сеанс гибернации? - PullRequest
1 голос
/ 11 августа 2010

Я получил одноэлементную службу, и внутри ее единственного метода мне нужно получить ссылку на сеанс гибернации, привязанный к текущему запросу.Какой самый быстрый способ сделать это?

Ответы [ 2 ]

4 голосов
/ 11 августа 2010

Мы делаем это следующим образом:

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», sessionFactory добавляется grails.

3 голосов
/ 11 августа 2010

Или просто

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

Доменные объекты - это классы, определенные в каталоге grails-app / domain. Переменная session будет получать текущую ссылку на сеанс Hibernate внутри withSession закрытия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...