hibernateSession.createQuery ("select foo where id = 1");
// Эта команда возвращает элемент с идентификатором 1.
// [BREAK POINT STOP] ==> Я иду в MySQL, и я удаляю этот элемент вручную.
// [BREAK POINT CONTINU]
hibernateSession.createQuery ("select foo where id = 1");
// Эта команда возвращает элемент с идентификатором 1 тоже! :-(
Это то же самое с hibernateSession.flush()/hibernateSession.clean()
Я думаю, что я не очень хорошо использовать свой кэш гибернации ...Hibernate - тот же результат после обновления/выберите
ответ
Определенно проблема кэширования. Вы используете в той же сессии? Попробуйте закрыть сеанс и получить новый с завода.
Первый запрос будет загружен этим объектом в сеанс гибернации. Ваше удаление строки в базе данных не влияет, поскольку вы используя тот же сеанс.
Вы eith необходимо запустить новый сеанс или evict объект из сеанса.
Попробуйте
Object o = hibernateSession.createQuery("select foo where id = 1").uniqueResult();
// [BREAK POINT STOP] ==> I go in MySQL and I delete this item manualy.
hibernateSession.evict(o);
hibernateSession.createQuery("select foo where id = 1");
Если это работает, то вы проблема с кэшем L1. Кэш L1 ВСЕГДА там, связан с данным объектом Session и не зависит от кэша L2, о котором говорит вся документация кэша гибернации. Целью кеша L1 является удовлетворение требования о том, что если вы дважды получите тот же объект базы данных в одном сеансе, две ссылки будут удовлетворять требованиям r1 == r2.
В принципе, использование спящего режима, когда возможны параллельные изменения в БД, не является простым.
- 1. SQLite тот же результат после обновления
- 2. показывает тот же результат
- 3. Hibernate SqlResultSetMapping Тот же результат Повторяется вместо уникального
- 4. What.max произвел тот же результат
- 5. выражение после группы по имеет тот же результат
- 6. Обещания - я получаю тот же результат после $ q.all
- 7. Расшифровка разных ключей дает тот же результат
- 8. Hibernate: тот же код на разных db
- 9. Hibernate пытается сохранить тот же объект дважды
- 10. Метод каждый раз дает тот же результат
- 11. sequelize.query() возвращает тот же результат дважды
- 12. GL_REPEAT и GL_CLAMP, дающие тот же результат
- 13. Android. Тот же экземпляр выдал другой результат.
- 14. DateFormat.is24HourFormat всегда возвращает тот же результат
- 15. Query дает тот же результат несколько раз
- 16. Если Else выводит тот же результат
- 17. Почему это показывает тот же результат PHP
- 18. Бросок VS ретроу: тот же результат?
- 19. Одновременно запросы Ajax возвращают тот же результат
- 20. Tensorflow предсказывает всегда тот же результат
- 21. getJuiceDescription метод всегда возвращает тот же результат
- 22. QString :: средний() всегда возвращает тот же результат
- 23. php search script возвращает тот же результат
- 24. managedQuery всегда возвращает тот же результат
- 25. Новое программирование, тот же результат различной программы
- 26. SimpleDateFormat возвращает всегда тот же результат
- 27. numpy, тот же расчет другой результат
- 28. Случайная функция продолжает получать тот же результат
- 29. PHP, а возвращает тот же результат неоднократно
- 30. couch.js allDocs() всегда возвращает тот же результат