java - hibernate 选择导致更新

标签 java hibernate orm sybase

这个问题类似于下面的问题:

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/

相关文章:

java - Android - 检查我来自哪个类(class)

orm - 如何使用 petapoco 映射子类/父类?

java - 如何将 java.util.Map 与 hibernate xml 中的关联映射?

java - 将附加参数从应用程序传递给触发器

java - 如何在不使用机器人的情况下关闭打开的文件

java - 我的时间介于开始时间和结束时间之间

java - 证明String不可变的程序

oracle - 如何加速 Hibernate 应用程序的启动?

java - Hibernate Envers 将数据恢复为一个版本

java - 如何使用 Hibernate 逆向工程扩展父类(super class)以具有通用的 getter/setter