解决方案 »

  1.   

    这个问题很奇怪,没有发现过这个问题,可能需要看源码.
    区别应该是这样:
     (1)scope="prototype"(多态)是在每次用户发起请求时重新生成action对象,对于多线程访问不会出现问题,如果没有配置scope=prototype则添加的时候不会新建一个action,他任然会保留上次访问的过记录的信息。
    (2)默认是scope="singleton"(单态),这些bean被spring初始化后,始终只有一份,很适用于无状态的bean,DAO、Service都采用的这种。当然,scope的值还有session,request等等。
    (3)希望解决以后附上原因,解决过程中是可以学到很多知识的,特别是看过源码之后就会了解.
      

  2.   

    你修改的时候是不是直接用的update()方法?
      

  3.   

    是调用的update方法:
    @Override
    public <T> T update(T t) {
    return baseDao.update(t);
    }
      

  4.   

    经过测试使用merge方法可以的,但是什么原因呢,据我所知,merge是hibernate又new的了对象,把要更新的对象拷贝到new的对象里面,执行完成后new的对象是持久状态,而之前的对象还是托管状态。
      

  5.   

    不好意思,merge也不行,我刚才测试时是因为把,角色用户表:T_USER_ROLE,角色资源表:T_ROLE_RESOURCE两张表数据删除了,没有出现删除语句。