StaleObjectStateException - для всех операций чтения? - PullRequest
0 голосов
/ 31 октября 2011

Я работаю над проектом appfuse с базовыми приложениями Spring и Hibernate.У моего приложения есть страница, которая получает много одновременных обращений.У меня есть метод в классе контроллера, который использует 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) в одном из этих методов специально для именованного запроса.1013 *

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

Я не уверен, что вызывает исключение StaleObjectStateException, что здесь не так?Любые советы по избежанию этой проблемы параллелизма были бы очень полезны

...