问题情形:ssh项目,spring管理业务类方法的事务,我将查询方法加入事务(实验),有一个一对多关联的实体,通过业务类的方法查询这个实体,发现控制台打印出对这个实体关联的集合执行了update语句。何解?

解决方案 »

  1.   

    把代码贴出来啊。估计是hibernate中缓存与数据库中的数据不同步,所以出现了update语句,这正是hibernate要注意的地方
      

  2.   

    就是根据id 查出那个实体对象,然后控制台就打出那个实体对象关联的集合里的对象的update语句,集合里有15个对象,打印出15条update语句。没用二级缓存。唯一不同的地方就是这个业务方法我故意加了事务
    <tx:method name="find*" propagation="REQUIRED" read-only="true"/>
      

  3.   


    和事务没关系吧!还是hibernate的问题吧 这个和二级缓存没关系,和一级缓存有关系哦!!我感觉是这么个情况