import org.hibernate.FlushMode;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.dao.DataAccessResourceFailureException;
import org.springframework.orm.hibernate3.SessionFactoryUtils;
import org.springframework.orm.hibernate3.support.OpenSessionInViewFilter;
public class PmsOpenSessionInViewFilter extends OpenSessionInViewFilter
{
protected void closeSession(Session session, SessionFactory sessionFactory)
{
session.flush();
super.closeSession(session, sessionFactory);
}
protected Session getSession(SessionFactory sessionFactory)
throws DataAccessResourceFailureException
{
Session session = SessionFactoryUtils.getSession(sessionFactory, true);
this.setFlushMode(FlushMode.AUTO);
FlushMode flushMode = getFlushMode();
if (flushMode != null)
{
session.setFlushMode(flushMode);
}
return session;
}
}
本文介绍了一个自定义的Spring Hibernate过滤器实现,通过该过滤器可以在视图渲染过程中保持Hibernate会话打开状态,并确保数据的一致性和事务的正确处理。特别地,文章详细展示了如何设置Hibernate的刷新模式以及如何在请求结束时关闭会话。
639

被折叠的 条评论
为什么被折叠?



