StaleObjectStateException - 对于所有读操作?

时间:2011-10-31 07:33:45

标签: hibernate spring appfuse staleobjectstate staledataexception

我正在开发一个带有底层Spring和Hibernate应用程序的appfuse项目。我的应用程序有一个页面,它会获得大量的并发命中。我在控制器类中有一个方法,它使用DAO来执行底层操作。

我有一个方法 - 如下所示,

    @Transactional
    private void fetchHistoryRows(){
      callFirstmethod();
      callSecondMethod();
      callThirdMethod();
      callFourthMethod();
      callFifthMethod();
      callSixthMethod();
    }

fetchHistoryRows()中使用的所有六种方法都是使用命名查询的数据库读取操作。并且所有方法都标有@Transactional

我继续在其中一种方法中专门针对命名查询获取org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect)

查询也如下,

select distinct h from History h where h.url = :url and h.id <> :id and h.term = :term order by h.updatedDate desc

我不确定导致StaleObjectStateException的原因是什么,这里出了什么问题?避免这种并发问题的任何提示都会非常有用和有用

0 个答案:

没有答案