我openSessionInView
在 web.xml 中有过滤器。
<filter>
<filter-name>openSessionInView</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
我已将allowCreate
HibernateDaoSupport 的属性设置为true
. 现在对于每个数据库操作,如果我获得 SessiongetSession
并在事务后关闭 Session,例如:
public List<User> getAllUsers() {
Session session = getSession();
session.enableFetchProfile("USER-ROLE-PROFILE");
Transaction transaction = session.beginTransaction();
DetachedCriteria criteria = DetachedCriteria.forClass(User.class);
List<User> users = criteria.getExecutableCriteria(session).list();
transaction.commit();
session.disableFetchProfile("USER-ROLE-PROFILE");
session.close();
return users;
}
那么这个会话关闭会产生任何问题openSessionInView
吗?
另一个问题:这是做各种休眠操作的好方法吗?在上面的代码中,实体User
有一个获取配置文件。
谢谢并恭祝安康。