StaleObjectStateException - для всех операций чтения?

Я работаю над проектом 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) в одном из этих методов специально для именованного запроса.

Запрос также выглядит следующим образом:

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 ответов

Другие вопросы по тегам