What does @Transient annotation mean for methods?
annotations, jakarta-ee, jpa, transient
Solution
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`.
Problem
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 persist a field to the database. But what does it mean when `@Transient` is applied to a method rather than a variable? This is where I found it in our code: ``` @Transient public boolean getTabFoo() { if ((this.viewFoo1 != ACCESS_NONE) || (this.viewFoo2 != ACCESS_NONE) || (this.viewFoo3 != ACCESS_NONE) || (this.getViewFoo4() != ACCESS_NONE)) { return true; } return false; } ```