2012-08-16 65 views
2

如果我将字段定义为不可更新,那么这是否意味着该字段根本无法更新?我想要做的是防止在保存整个实体对象时更新字段,但仍然能够编写明确更新此字段的查询。这可能吗?@ javax.persistence.Column(updatable = false)

我正在使用Hibernate和MySQL,但我更愿意编写可移植代码。

回答

4

由于documented,设置updatable=false影响的持久性提供者生成只有SQL UPDATE语句

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

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

2
@javax.persistence.Column(updatable=false) 

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

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

相关问题