你的session需要用session.flush().

解决方案 »

  1.   

    如果我有session.flush(),那么会出现更多的问题.
    我每次都会正常的关闭session的.
      

  2.   

    我觉得是你的关键ID的问题,出现错误就是当你保存的时候已经发现要保存的对象(根据ID识别)在缓存中已经存在,所以出错,如果用update这个对象也许就没有什么问题了,为什么会出现这样的情况呢,是因为你的的ID没有设置好,所以你才要clear来清楚缓存中的对象,才可以执行,建议重新设置你的ID生成。
      

  3.   

    我也觉得是hibernate的缓存问题,上次出错时的ID还存在,所以导致上面的问题.
    那有什么其它的办法解决.
    各位提供一下.
      

  4.   

    ID 问题.因为两张表有关系存在.一般情况下,默认搜索和更新都会返回两个对象.如果设置为
    lazy-loading 的时候,只返回一个对象,只有当需要的时候才取另外一个对象.
         而且,关系使有hibernate维护的,如果更新数据,hibernate 会检查一致性.所以请确保上面的obj的正确性...和关系的设置.