гибернация выберите причины обновления
Этот вопрос аналогичен следующему:
Что заставило hibernate создать предложение update?
Но, кажется, у него нет ответа
В журнале записано следующее сообщение об обновлении. Однако мы не делаем этого явно. Hibernate каким-то образом автоматически генерирует это по инструкции SELECT
update
ops2.dbo.ObjectA
set
AcceptDate=?,
ActionTaken=?,
ModifyBy=?,
ModifyByID=?,
ModifyDate=?,
ModifyDept=?,
ParentId=?,
Priority=?,
RepRqmt=?,
SchedDate=?,
SchedDate=?,
where
Rank=?
Это утверждение, которое порождает проблему:
Query query =
session.createSQLQuery("SELECT * FROM ProductOrders").addEntity(MyOrder.class);
List<MyOrder> orders= query.list();
1 ответ:
По умолчанию Hibernate сбрасывает отложенные изменения перед выполнением запроса, чтобы убедиться, что запрос видит изменения, внесенные до выполнения этого запроса. Если бы это было не так, вы могли бы иметь эту неприятную ситуацию:
Foo foo = (Foo) session.get(Foo.class, 1L); foo.setColor("red"); List<Foo> redFoos = session.createQuery("select foo from Foo foo where foo.color = 'red'"); if (redFoos.isEmpty()) { System.out.println("WTF?"); }