Различное поведение при обновлении записей с 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);

Выборка записей после этого обновления возвращает обновленный набор результатов.

Просто любопытно, почему есть два разных поведения по одной и той же причине?

0 ответов

Другие вопросы по тегам