【发布时间】:2011-02-02 15:57:37
【问题描述】:
我正在寻找一种跨 Web 应用程序管理休眠会话的好方法。
我的问题是我不想在视图或 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;
}
【问题讨论】: