如果我将字段定义为不可更新,那么这是否意味着该字段根本无法更新?我想要做的是防止在保存整个实体对象时更新字段,但仍然能够编写明确更新此字段的查询。这可能吗?@ javax.persistence.Column(updatable = false)
我正在使用Hibernate和MySQL,但我更愿意编写可移植代码。
如果我将字段定义为不可更新,那么这是否意味着该字段根本无法更新?我想要做的是防止在保存整个实体对象时更新字段,但仍然能够编写明确更新此字段的查询。这可能吗?@ javax.persistence.Column(updatable = false)
我正在使用Hibernate和MySQL,但我更愿意编写可移植代码。
由于documented,设置updatable=false
影响的持久性提供者生成只有SQL UPDATE语句:
列是否包含在 持久性提供生成的SQL UPDATE语句。
您仍然可以编写这样的SQL更新语句,该语句将更新此列中的值。这个功能在JPA规范中定义,并且不是Hibernate/MySQL特定的。
@javax.persistence.Column(updatable=false)
映射的列不能使用HQL或通过hibernate方法更新。如果您需要更新数据库中的值,您应该编写原生SQL。
如果我逻辑上看,它不应该让你更新,当你说updatable=false