????<filter>
????????<filter-name>hibernateFilter</filter-name>
????????<filter-class>
????????????org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
????????</filter-class>
??? </filter>
<aop:config>
????<aop:advisor?id="managerTx"?advice-ref="txAdvice"
????????pointcut="execution(*?*..service.*Manager.*(..))"?order="2"?/>
</aop:config>
<tx:advice?id="txAdvice">
????<tx:attributes>
????????<tx:method?name="get*"?read-only="true"?/>
????????<tx:method?name="find*"?read-only="true"?/>
????????<tx:method?name="*"?/>
????</tx:attributes>
</tx:advice>
????<aop:advisor?id="managerTx"?advice-ref="txAdvice"
????????pointcut="execution(*?*..service.*Manager.*(..))"?order="2"?/>
</aop:config>
<tx:advice?id="txAdvice">
????<tx:attributes>
????????<tx:method?name="get*"?read-only="true"?/>
????????<tx:method?name="find*"?read-only="true"?/>
????????<tx:method?name="*"?/>
????</tx:attributes>
</tx:advice>
這樣的配置,當在容器中通過action調用service代碼保存對象時,不能成功保存對象,
同時出現如下類似錯誤:
Write?operations?are?not?allowed?in?read-only?mode?(FlushMode.NEVER/MANUAL):?Turn?your?Session?into
FlushMode.COMMIT/AUTO?or?remove?'readOnly'?marker?from?transaction?definition.
FlushMode.COMMIT/AUTO?or?remove?'readOnly'?marker?from?transaction?definition.
這時修改filter的配置,增加如下代碼:
????<filter>
????????<filter-name>hibernateFilter</filter-name>
????????<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>
????????<filter-name>hibernateFilter</filter-name>
????????<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>
這樣就能成功保存對象了。
===================================================================
額。。。上面那個配置等于不用OpenSessionInViewFilter。。。 沒意義。。