spring的OpenSessionInViewFilter问题(spring2.5+hibernate-3.2.6+struts1.X)
我重写了OpenSessionInViewFilter类,在struts的action中先向数据库添加一条数据,然后再查询所有的数据,但是无法得到最新插入的一条数据
打印了hibernate的sql显示是先查询,然后才执行了数据库的插入操作,怎么回事呢?
web.xml
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>com.test.util.ExtOpenSessionInViewFilter</filter-class>
<!--filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class-->
<init-param>
<param-name>singleSession</param-name>
<param-value>false</param-value>
</init-param>
</filter>
public class ExtOpenSessionInViewFilter extends OpenSessionInViewFilter{
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;
}
protected void closeSession(Session session, SessionFactory sessionFactory){
session.flush();
super.closeSession(session, sessionFactory);
}
}
Hibernate: select book0_.id as id0_, book0_.name as name0_ from test_book book0_
Hibernate: insert into test_book (name, id) values (?, ?)