[/b]
这个表有N个外表关联,然后再web.xml中加上了过滤,成功的在web展示页面中显示每个BcmGood的数据,但是我加了WorkHibernateFilter过滤以后,其他(单表业务)模块的根本不能做相应业务处理(saveorupdate,del),望大家多多指教,qq:289450605 一直在线。
[code="java"]
WorkHibernateFilter
com.***.fiter.IDEHibernateFilter
WorkHibernateFilter
/*
[/code]
IDEHibernateFilter.java
[code="java"]
public class IDEHibernateFilter extends OpenSessionInViewFilter
{
protected Session getSession(SessionFactory sessionFactory)
throws DataAccessResourceFailureException
{
Session session = SessionFactoryUtils.getSession(sessionFactory, true);
session.setFlushMode(FlushMode.AUTO);
return session;
}
}
[/code]
[b]问题补充:[/b]
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
[b]问题补充:[/b]
在没有加OpenSessionInViewFilter过滤的时候,单表业务成功操作,显示相应结果。然后BcmGood是一张一对多表,用列表显示时报session close,然后加上OpenSessionInViewFilter过滤,其它(一对一)表的业务像del和saveorupdate,业务无法操作成功。这个执行过程中,无异常抛出。
OpenSessionInViewFilter作用就是在调用你写的代码前绑定session,只要保证它早于你的Action执行就可以了,
给你个参考的配置:
<?xml version="1.0" encoding="UTF-8"?>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!-- *************************************************************************start******** -->
demo
<!-- **********************************************************************context-param*********** -->
<!--spring配置-->
contextConfigLocation
classpath*:appContext*.xml
<!-- ***********************************************************************listener********** -->
<!--spring配置-->
org.springframework.web.context.ContextLoaderListener
<!-- **********************************************************************filter*********** -->
<!-- 中文过滤器 -->
Set Character Encoding
com.syj.util.SetCharacterEncodingFilter
encoding
GBK
<!-- hibernate3 OpenSessionInView 模式 -->
OpenSessionInViewFilter
com.syj.util.OpenSessionInViewFilter
<!--struct配置 -->
Struts2
org.apache.struts2.dispatcher.FilterDispatcher
<!-- **********************************************************************filter-mapping*********** -->
<!-- 中文过滤器 -->
Set Character Encoding
/*
<!-- hibernate3 OpenSessionInView 模式 注意:一定配置struct mapping的前面-->
OpenSessionInViewFilter
.do
<!--struct配置 注意:一定配置OpenSessionInView mapping的后面-->
Struts2
/
<!-- ************************************************************************servlet********* -->
<!-- 负责系统初始化的启动Servlet -->
initServlet
com.syj.action.InitServlet
1
<!-- 配置图形码 -->
codeFact
com.syj.util.CodeFact
<!-- jfreechart显示图表 -->
DisplayChart
org.jfree.chart.servlet.DisplayChart
<!-- ************************************************************************servlet-mapping********* -->
<!-- 负责系统初始化的启动Servlet -->
initServlet
/initServlet
<!-- 配置图形码 -->
codeFact
/codeFact
<!-- jfreechart显示图表 -->
DisplayChart
/servlet/DisplayChart
<!-- *************************************************************************jsp-config******** -->
<!--syj标签库配置-->
syj.tld
/WEB-INF/syj.tld
<!-- *************************************************************************end******** -->
[quote]其他(单表业务)模块的根本不能做相应业务处理(saveorupdate,del)[/quote]
能不能具体说明一下?
查看一下你的事务配置方式好么?
执行不了,抛异常了吗?
没有异常抛出,也没有执行成功,建议调试了看看是否真的没有异常,或是被catch没有打印,或是事务没有成功执行,或是其他。只能逐步调试了看了