当前位置: 首页 > 知识库问答 >
问题:

更新hibernate中属性元素的属性

空英达
2023-03-14

Hibernate的property元素具有update、insert属性,根据文档,它声明-http://docs.jboss.org/hibernate/orm/3.3/reference/en-US/html/mapping.html#mapping-声明属性

update,insert(可选-默认为true):指定映射列应包含在SQL update和/或insert语句中。将两者都设置为false将允许使用纯“派生”属性,该属性的值是从映射到同一列的其他属性初始化的,或者由触发器或其他应用程序初始化的。

如果它的值设置为“false”而不是“true”,请帮助我理解它的行为。这里的派生属性是什么?

共有1个答案

羊慈
2023-03-14

您可以在一个示例中看到差异-如果您创建一个实体并使用默认的插入设置将其持久化,那么该实体设置的所有字段都将被持久化,并且您将在Hibernate日志中看到预期生成的插入SQL语句。类似于:

Hibernate: insert into SCHEMA1.User (id, firstName, lastName) values (default, ?, ?)

但是,如果将某个属性的插入设置为false,即使该字段在实体中有值,生成的SQL也会将相应的列排除在外,因此它的值不会持久化。如果firstName的insert设置为false,则生成的SQL为:

Hibernate: insert into SCHEMA1.User (id, lastName) values (default, ?)

如果firstName可为null,则此操作有效,否则将失败。


所描述的原则也适用于更新


在文档中提到的情况下,将这些属性设置为false是有意义的,在这种情况下,您处理的是一个派生的(计算的)属性,而不是持久化的属性。事实上,它是一个只读属性,其值在获取时计算(计算被声明为SQL表达式,转换为选择子查询)。有关派生属性的更多信息,请查看本文中的示例和链接。

 类似资料:
  • 我是8Java的新手。我有一个A类对象的列表,其中A的结构如下: 现在我有了一个类A的元素L的列表,在这个列表中,我想用inactive=false更新一个名为name="test "的元素。 我可以通过编写for循环并创建一个新列表来非常轻松地做到这一点。 但是我如何使用Java8流API呢?

  • 问题内容: 如何使用WebDriverWait等待属性更改? 在我的AUT中,我必须等待按钮被启用后才能继续,但是不幸的是,由于开发人员对页面进行编码的方式,我无法使用WebElement的isEnabled()方法。开发人员正在使用一些CSS来使按钮看起来像已禁用,因此用户无法单击它,并且isEnabled方法始终为我返回true。因此,我要做的就是获取属性“ aria-disabled”,并检

  • 在使用Vdt的过程中,你也许会遇到这样一个问题:设置的属性,并不能渲染出来,例如: <input maxlength="10" /> 上述例子中,设置的maxlength属性丢失了。要理解这个原因,可以看看这段介绍 Content attribute & IDL attribute, 以及Virtual-Dom文档中对VNode的介绍 Content vs IDL attribute Conte

  • 如何使用WebDriverWait等到属性更改? 在我的AUT中,我必须等待一个按钮被启用后才能继续,不幸的是,由于开发人员编码页面的方式,我不能使用WebElement的isEnabled()方法。开发人员正在使用一些CSS来使按钮看起来像是被禁用的,这样用户就不能点击它,并且方法isEnabled对我来说总是返回true。所以我要做的就是获得属性“aria-disabiled”,检查文本是“t

  • 问题内容: 我正在NHibernate中对单个属性执行标准更新。但是,在提交事务时,sql更新似乎设置了我映射到表上的所有字段,即使它们没有更改。当然这不是Nhibernate中的正常行为吗?难道我做错了什么?谢谢 问题答案: 这是正常现象。您可以尝试添加到类定义中以覆盖此行为。

  • 问题内容: 在检查Chrome Dev工具时,我注意到以下CSS片段: 可以在Chrome中完美运行(请参见下面的屏幕截图)。 这使我可以通过CSS定义标签的src属性。在Firefox中不起作用。到目前为止,我认为不可能通过CSS直接修改src属性,而且我还没有发现有人在谈论这一点。 那么,这仅仅是Chrome中的专有功能,还是Chrome正在实施W3C草案或其他我不知道的类似产品? 问题答案: