All JPA annotations at the field level can be placed either by field or by property, they determine the type of access for the object (that is, how the JPA provider will access the fields of this object - directly or using getters / setters).
The default access type is determined by the location of the @Id annotation, and it must be consistent across all fields of an object (or hierarchical inheritance of inherited objects) unless @Access explicitly redefined for some fields.
So, @Transient in getters has the same meaning as @Transient for fields - if the default access type for your object is access to properties, you need to annotate all getters that don't match persistent properties with @Transient .
source share