Reputation: 8374
If I define a field as non-updatable, does that mean that the field can't be updated at all, ever? What I'd like to do is prevent the field from getting updated when I save an entire entity object, but still be able to write queries that explicitly update this field. Is this possible?
I'm using Hibernate and MySQL, but I'd prefer to write portable code.
Upvotes: 15
Views: 22179
Reputation: 42094
As documented, setting updatable=false
affects only SQL UPDATE statements generated by persistence provider:
Whether the column is included in SQL UPDATE statements generated by the persistence provider.
You are still able to write such an SQL update statement that will update values in this column. This functionality defined in JPA specification, and is not Hibernate/MySQL specific.
Upvotes: 16
Reputation: 14363
@javax.persistence.Column( updatable=false )
The column mapped would not be updatable using HQL or via hibernate methods. In case you need to update the value in the DB you should be writing native SQL.
And if I see logically, it shouldn't allow you to update when you say updatable=false
Upvotes: 5