如果我将字段定义为不可更新,这是否意味着该字段根本无法更新?我想要做的是在保存整个实体对象时阻止字段更新,但仍然能够编写显式更新此字段的查询。这可能吗?
我正在使用Hibernate和MySQL,但我更喜欢编写可移植代码。
答案 0 :(得分:6)
作为documented,设置updatable=false
仅影响持久性提供程序生成的SQL UPDATE语句:
该列是否包含在由...生成的SQL UPDATE语句中 持久性提供者。
您仍然可以编写这样的SQL更新语句来更新此列中的值。此功能在JPA规范中定义,而不是特定于Hibernate / MySQL。
答案 1 :(得分:3)
@javax.persistence.Column( updatable=false )
使用HQL或hibernate方法映射的列不可更新。如果您需要来更新数据库中的值,您应该编写本机SQL。
如果我从逻辑上看,当你说updatable=false