Недавно я столкнулся с проблемой, когда сеанс гибернации не сбрасывается перед выполнением собственного запроса SQL. Флешмод созданного сеанса: АВТО . Для объекта A код выглядит как
A a=aDao.getById(session,id);
a.setB(3);
...
String query = "select count(*) as total from A a where a.b=3";
session.createSQLQuery(query)
.addScalar("total", StandardBasicTypes.).uniqueResult();
Проблема в том, что я получаю неправильные результаты с запросом count(*)
, потому что сеанс не сбрасывается перед выполнением запроса. Если я сделаю
session.flush();
до count(*)
запроса, тогда он работает просто отлично. Это противоречит тому, что я прочитал из https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#flushing-auto, в котором говорится, что
Session API автоматически выполнит сброс при выполнении
собственный запрос.
Чего мне не хватать?