补充一部分配置文件:
<bean id="ManagerRoleDAOProxy" parent="abstractTxDefinition">
<property name="target">
<ref local="ManagerRoleDAO"/>
</property>
</bean>
<bean id="ManagerDAOProxy" parent="abstractTxDefinition">
<property name="target">
<ref local="ManagerDAO"/>
</property>
</bean>
<bean id="ManagerRoleDAOProxy" parent="abstractTxDefinition">
<property name="target">
<ref local="ManagerRoleDAO"/>
</property>
</bean>
<bean id="ManagerDAOProxy" parent="abstractTxDefinition">
<property name="target">
<ref local="ManagerDAO"/>
</property>
</bean>
我按照楼主的方法试了一下,没碰到不能写入数据库的情况,只是ts.commit();时会发生一个异常,因为在执行前一个Dao的save时已经提交了事务。
你如果不显式的调用ts.commit,还能保存到数据库中吗?
照理事务已经交给Spring管理了,在save结束后会自动调用ts.commit
我现在郁闷的是,我两个类一模一样配置的,结果却不一样,唉
IManagerRoleAssignDAO mrad = (IManagerRoleAssignDAO)factory.getBean("ManagerRoleAssignDAO");
-------------------
你得到的这2个bean都是未经过Spring增强的pojo,Spring怎么会去管理这2个bean的方法的事务呢。IManagerDAO md = (IManagerDAO)factory.getBean("ManagerDAOProxy");
----------
这个就可以.
-----------
一般只在做单元测试的时候使用,为了opensessioninview.
找了我十个小时的bug啊!
我是猪啊~~~