Получить объект, используя сеанс гибернации без транзакции - PullRequest
0 голосов
/ 25 сентября 2019

В чем различия между getCurrentSession и openSession?Я имею в виду, используя openSession, я мог бы выполнить извлечение из БД, не начиная транзакцию и не совершая ее.

final SessionFactory sf = new Configuration().configure("hibernate.cfg.xml").addAnnotatedClass(Student.class)
                .buildSessionFactory();
Session session = sf.openSession();

Student student = session.get(Student.class, 1);
System.out.println(student);

session.close();
sf.close();

Но в getCurrentSession я должен сделать session.beginTransaction() и session.getTransaction().commit()

1 Ответ

1 голос
/ 25 сентября 2019

.openSession () всегда открывает новый сеанс, который необходимо закрыть после завершения запросов.тогда как .getCurrentSession () возвращает сеанс, связанный с контекстом - вам не нужно закрывать.

...