10

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

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

4

2 回答 2

12

文件所述,设置仅影响持久性提供程序生成updatable=false的SQL UPDATE 语句:

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

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

于 2012-08-16T18:33:43.203 回答
4
@javax.persistence.Column( updatable=false )

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

如果我从逻辑上看,它不应该让你在你说的时候更新updatable=false

于 2012-08-16T18:34:06.523 回答