So I have learned that the transient
keyword in Java means that an entity does not persist, and that the @Transient
annotation in JPA means don\'t pers
All field-level JPA annotations can be placed either on fields or on properties, it determines access type of the entity (i.e. how JPA provider will access fields of that entity - directly or using getters/setters).
Default access type is determined by placement of @Id
annotation, and it should be consistent for all fields of the entity (or hiererchy of inherited entities), unless explicitly overriden by @Access
for some fields.
So, @Transient
on getters has the same meaning as @Transient
on fields - if default access type for your entity is property access, you need to annotate all getters that don't correspond to persistent properties with @Transient
.