Я ищу хороший способ управлять сеансом спящего режима через веб-приложение. Моя проблема в том, что я не хочу разрешать доступ к сеансу на уровне представления или API. поэтому я создал следующий метод в своем абстрактном классе BaseDao. метод методаЭто хороший подход для управления сеансом спящего режима?
protected static Session getSession() {
if(!session.isOpen()){
session = sessionFactory.openSession();
}else{
session.clear();
}
return session;
}
использование:
public IHibernateBean save(IHibernateBean bean) {
Transaction t = session.beginTransaction();
getSession().saveOrUpdate(bean);
t.commit();
return bean;
}
public IHibernateBean getByPK(Class<?> class1 , Long pk) {
IHibernateBean hibernateBean = (IHibernateBean) getSession().get(class1 , pk);
return hibernateBean;
}
Спасибо, как насчет моего кода, это хороший подход? – fatnjazzy
@fatnjazzy: Это определенно не очень хорошо, поскольку сеансы не закрываются. Использование контекстных сеансов решает эту проблему, закрывая сеансы неявно. – axtavt
Если мы закрываем сеансы, то при получении LAZY, он дает ошибку, говоря, что сессия закрыта, как ее решить? –