将你的两次save的代码写入employeeHibernateDao的一个方法调用,就OK了。
如果是两次调用employeeHibernateDao的一个方法显然不在一个事务内。
如果还出错且用的hibernate3,考虑将第二次save的修改为merge。

解决方案 »

  1.   

    我就是将两次save的代码写入employeeHibernateDao的一个方法(add)进行调用的
      

  2.   

    1,确定你的EmployeeDAO是不是有没有继承接口2,看看你的GETBEAN接收的是不是接口类型,
    .
    3,建议你添加这个节点<property name="transactionAttributes">添加这个节点,如下<property name="transactionAttributes">
    <props>
        <prop key="save星号">
    </props/>删掉<property name="transactionAttributeSource">删掉节点
    我键盘打不了星号,凑活了,赫赫
      

  3.   

    因为你用的getHibernateTemplate()方法,该方法根本就没有给你事务管理,也就是说每次调用该方法的时候都不是在同一个事务里面的,如果你想在同一个事务里面操作的话,那你可以可以利用Hibernate自身的API,或者你自己显式的调用getHibernateTemplate().getSession()方法,然后手动开启事务(因为Spring是把session的事务的自动提交属性设置为true的,就象在JDBC的默认的自动事务提交一样),再通过session操作你实际想要操作的方法,操作完了之后,再手动提交.这样两个方法就在同一个事务里面了!