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

@javax.persistence.列(可更新=假)

笪栋
2023-03-14

如果我将一个字段定义为不可更新的,这是否意味着该字段根本不能更新?我想做的是在保存整个实体对象时防止字段被更新,但仍然能够编写显式更新该字段的查询。这可能吗?

我使用的是Hibernate和MySQL,但我更喜欢编写可移植代码。

共有2个答案

李辉
2023-03-14
@javax.persistence.Column( updatable=false )

映射的列不能使用HQL或Hibernate方法更新。如果您需要更新数据库中的值,您应该编写本机SQL。

如果我从逻辑上看,当你说 updatable=false 时,它不应该允许你更新

谷博艺
2023-03-14

如前所述,设置< code > updated = false 只会影响由持久性提供程序生成的SQL UPDATE语句:

该列是否包含在持久性提供程序生成的 SQL UPDATE 语句中。

您仍然可以编写这样的SQL update语句来更新该列中的值。该功能在JPA规范中定义,并不特定于Hibernate/MySQL。

 类似资料:
  • 我有一个简单的POJO(字段1,字段2,字段3),我使用HibernateORM,我有一个基本的需求:我永远不应该更新数据库中的字段3。一旦第一次插入一行,当我调用回购以通过id(findById)获取对象时,即使我调用字段3的setter(setField3()),调用保存方法也应该抛出错误或异常,指定我正在尝试更新字段3,我不应该。我不知道Hibernate是否可以处理这种需求,或者我是否必须

  • 我有一个问题与primeface数据表。我有一个数据与一些条目和一个列与一个按钮内。如果按钮被按下,一个弹出窗口打开与另一个数据表。第二个数据表中的条目取决于行中的按钮被按下。 Bean2 问题是弹出式数据表中没有列出任何条目,尽管在db查询之后的列表中有一些条目。 有没有办法修复这个bug?提前感谢! 更新1:

  • 我正在制作一个由任务管理器组成的应用程序。 在此任务管理器中,收件箱列表中有3个列表(收件箱、今天和星期),其中仅显示不带类别的任务,而在其他两个列表中,分别显示今天和本周的带类别或不带类别的任务。 我希望能够更改三个列表中一个任务的类别。因此,如果我更改收件箱任务的类别(不应该有类别),整个表都应该更新,任务应该从列表中删除。 我调试了程序,任务被正确地从列表中删除,但只有类别的单元格被更新,而

  • 问题内容: 我有一个像这样的mongo文件。 我希望能够插入和更新与单个蒙戈命令内不使用条件,然后运行,并根据对象的存在。 这是我要成为选择器的项目。所以如果我用这个更新数组: 我必须使用一个声明 如果我想在数组中插入一个新对象 我必须使用一个声明 我需要一种用于数组项的upsert。 我必须以编程方式执行此操作还是可以通过一个mongo调用来执行此操作? 问题答案: 我不知道在MongoDB 2

  • 问题内容: 输出:连接到数据库…输入要提取的余额: 20 net.ucanaccess.jdbc.UcanaccessSQLException:尝试分配给不可更新的列 问题答案: 检查访问数据库中的Atm对象,并确保它是表而不是查询。还要检查AccountBalance的数据类型,并确保它是可编辑字段。如果它是自动递增或计算的,则将无法更新。 编辑:看起来您必须声明它为可更新的游标。这是ucana

  • 问题内容: 更新“订单”列的最佳方法是什么? 假设我有一个ID列,其范围是0到9,而订购列的范围是0到9。 当前,它在数据库中的位置为:0 0、1、1、2、2等 我的HTML页面发布了新顺序:0 8、1 3、2 6等(这完全是随机的,由用户决定)。 进行更新的最佳方法是什么? 我可以遍历并运行每个更新。我还可以创建一个包含所有对的临时表,然后基于子查询进行更新。 但是我觉得我忘记了一些琐碎的事情,