Пожалуйста, повторите то же самое с отключенным кэшированием Hibernate ( кэш второго уровня и кэш запросов ).Для этого установите следующие свойства в false в конфигурации Hibernate или Spring:
- hibernate.cache.use_query_cache
- hibernate.cache.use_second_level_cache
Это должно привести к тому, что Hibernate будет каждый раз возвращаться к базе данных и отображать результаты в том виде, как они есть в базе данных.Обратите внимание, что Hibernate по-прежнему использует кэш сеанса первого уровня, который используется во время сеанса (обычно одной транзакции).Кроме этого, теперь он всегда должен идти в базу данных и отображать актуальные результаты, даже если вы измените данные непосредственно в БД.
После того, как вы убедились, что это работает, вы можете включитьснова кешируйте и убедитесь, что они работают как задумано.Обязательно прочитайте документацию Hibernate по кэшированию, особенно различные стратегии кэширования ( только для чтения , чтение-запись , ...): http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/performance.html#performance-cache