Основным исследованием в этой статье является закрытие Hibernate на сессии, следующим образом.
Студент = новый студент (); Student.SetName ("Jan"); Student.Setage ("22"); Student.setAddress («Город Чжаоцина, провинция Гуандун»); Session Session = hibernateutil.getSessionFactory (). GetCurrentSession (); session.beginTransaction (); Session.save (студент); session.flush (); session.getTransaction (). Commit (); 1. В чем разница между getcurrentsession () и opensession ()?
getCurrentSession() будет связана с текущим потоком, в то время как сеанс, созданный с помощью openSession() не будетgetCurrentSession() будет автоматически закрыта при совершении коммита или отката, в то время как сеанс, созданный с помощью openSession() должен быть закрыт вручную. 2. Чтобы использовать getCurrentSession() вам необходимо добавить следующую конфигурацию в файл hibernate.cfg.xml:
<property name="hibernate.current_session_context_class">thread</property>
<property name="hibernate.current_session_context_class">jta</property>
В чем разница и корреляция между openSession() и getCurrentSession() ?
Когда SessionFactory начинается, Hibernate создаст соответствующий CurrentSessionContext в соответствии с конфигурацией. Когда называется getCurrentSession() , фактический метод, который должен быть выполнен, является CurrentSessionContext.currentSession() . Когда currentSession() выполняется, если текущий сеанс пуст, тока будет вызовать открытую сеанс. Таким образом, getCurrentSession() - лучший способ получить сессию для Java EE.
Много раз session is close(); причина в том, что вы устанавливаете его в hibernate.cfg.xml
<имя свойства = "hibernate.current_session_context_class"> Thread </property>
Система закрывает сеанс после commit(); После выполнения. В настоящее время, если вы вручную закроете сеанс, это, конечно, укажет на ошибку.
Выше приведено все содержание этой статьи об анализе закрытого экземпляра Hibernate на сессии, я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!