Search code examples
javajakarta-eejpajava-ee-6

@javax.persistence.Column( updatable=false )


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.


Solution

  • 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.