gpt4 book ai didi

hibernate - 在 Hibernate 中使用注释的dynamicUpdate=true 不起作用

转载 作者:行者123 更新时间:2023-12-02 11:29:44 26 4
gpt4 key购买 nike

即使在使用org.hibernate.annotations.entity(dynamicUpdate=true)的实体类注释中使用dynamicUpdate=true(用于更新选择性列而不是所有列)之后,hibernate也会尝试更新表的所有字段并且由于我对少数列有“非空”约束,因此它会引发异常。如何解决这个问题?请尽快提供帮助..

最佳答案

要使动态更新正常工作,您应该首先从 hibernate 中获取对象,然后更改字段。

p = session.get(Person.class,1);
p.setFirstName("Kamal");

这将导致查询仅更新first_name列。

以下内容无效。它将发出更新查询,并将所有其他列设置为 null。

p = new Person()
p.setId(1)
p.setFirstName("Kamal")
session.update(p)

如果您只想更新某些列,可以使用 update HQL 命令。不建议这样做 - 因为它会绕过缓存。正确的方法是上面概述的方法,加载对象,然后更改需要更改的字段。

关于hibernate - 在 Hibernate 中使用注释的dynamicUpdate=true 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12277891/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com