When I use BeanNameAutoProxyCreator, defined as:
I get the following error, using the SaveOrUpdate method; if I don't use AOP to manage transactions, there is no problem (I'm using Spring 1.1.4 and Hibernate 2.1.7).Code:<bean id="myTransactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager" > <property name="sessionFactory"> <ref bean="hibernateSessionFactory" /> </property> </bean> <bean id="matchAllWithPropReq" class="org.springframework.transaction.interceptor.MatchAlwaysTransactionAttributeSource"> <property name="transactionAttribute"><value>PROPAGATION_REQUIRED</value></property> </bean> <bean id="matchAllTxInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"> <property name="transactionManager"><ref bean="myTransactionManager"/></property> <property name="transactionAttributeSource"><ref bean="matchAllWithPropReq"/></property> </bean> <!-- One BeanNameAutoProxyCreator handles all beans where we want all methods to use PROPAGATION_REQUIRED --> <bean id="autoProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="interceptorNames"> <list> <idref local="matchAllTxInterceptor"/> </list> </property> <property name="beanNames"> <list> <idref local="modificaCommessaController"/> </list> </property> </bean>
Any help?
Thanks,
Luigi
Code:org.springframework.orm.hibernate.HibernateSystemException: a different object with the same identifier value was already associated with the session: 174, of class: comm.domain.fatturazione.Commessa; nested exception is net.sf.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: 174, of class: comm.domain.fatturazione.Commessa org.springframework.orm.hibernate.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:613) org.springframework.orm.hibernate.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:234) org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:317) org.springframework.orm.hibernate.HibernateTemplate.saveOrUpdate(HibernateTemplate.java:529) comm.persistence.fatturazione.CommessaDAOImpl.modifica(CommessaDAOImpl.java:117) comm.service.fatturazione.CommessaManagerImpl.modifica(CommessaManagerImpl.java:69) comm.web.controller.fatturazione.CommessaModificaFormController.onSubmit(CommessaModificaFormController.java:336) org.springframework.web.servlet.mvc.SimpleFormController.onSubmit(SimpleFormController.java:298) org.springframework.web.servlet.mvc.SimpleFormController.onSubmit(SimpleFormController.java:273) org.springframework.web.servlet.mvc.SimpleFormController.processFormSubmission(SimpleFormController.java:224) org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:230) org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:128) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:324) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:282) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:155) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:56) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174) $Proxy0.handleRequest(Unknown Source) org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:595) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:543) org.springframework.web.servlet.FrameworkServlet.serviceWrapper(FrameworkServlet.java:390) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:350) javax.servlet.http.HttpServlet.service(HttpServlet.java:709) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


Reply With Quote