Комбинация hibernate @Transactional и ehcache @Cacheable всегда создает транзакцию БД

Во время нагрузочного тестирования нашего приложения я заметил, что если вы используете аннотации @Transactional и @Cacheable, спящий режим всегда создает транзакцию базы данных. Есть ли простой способ предотвратить это? Более eleberate способ решить эту проблему в Spring состоит в том, чтобы иметь следующий класс/интерфейсы

  • Servicelayer-interface
  • Cacheable аннотированный класс, который является просто прокси/переадресацией на
  • Класс внедрения транзакционных аннотаций

Что происходит, так это после

Вызов 1:

  1. Создается транзакция
  2. Вызывается метод класса
  3. Результат кэшируется и возвращается

Вызов 2:

  1. Создается транзакция
  2. Кэшированный результат возвращается

предпочтительный результат должен быть:

Вызов 1:

  1. Создается транзакция
  2. Вызывается метод класса
  3. Результат кэшируется и возвращается

Вызов 2:

  1. Кэшированный результат возвращается
7
задан user1344117 21 May 2012 в 10:31
поделиться