Различное поведение при обновлении записей с H2 в памяти + Hibernate
Я пишу единичные случаи, используя h2 db. Мы используем Hibernate как Orm. Создать и получить работает хорошо для меня, я наблюдаю странные вещи при обновлении записей.
Если я использую метод merge(), а затем получаю набор записей, я могу получить обновленный набор записей. Но в случае query.executeUpdate () я не получаю обновленный, вместо этого я получаю оригинальный не обновленный объект.
Сценарий № 1:
Query query = sessionFactory.getCurrentSession().createSQLQuery("update test_table set name=:name where id = :id");
query.setParameter("name",testName);
query.setParameter("id",id);
query.executeUpdate();
Выборка записей после этого обновления возвращает не обновленный набор результатов.
Сценарий № 2:
TestObject testObj = (TestObject)sessionFactory.getCurrentSession().merge(updatedObject);
Выборка записей после этого обновления возвращает обновленный набор результатов.
Просто любопытно, почему есть два разных поведения по одной и той же причине?