这个问题类似于下面的问题:
What caused hibernate generate a update clause?
但是好像没有答案
日志显示以下是更新消息。然而,我们并没有明确地这样做。 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();
最佳答案
默认情况下,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?");
}
关于java - hibernate 选择导致更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22818306/