Qual è lo scopo di AccessType.FIELD, AccessType.PROPERTY e @Access

Voglio solo sapere qual è la differenza tra tutte queste annotazioni. Perché stiamo usando questi … significa che non hanno alcun effetto, in particolare livello di campo e livello di proprietà.

E qual è lo scopo dell’uso di annotazioni a livello misto come:

@Entity @Access(AccessType.FIELD) class Employee { // why their is a field level access private int id; // whats the purpose of transient here @Transient private String phnnumber; // why its a property level access @Access(AccessType.property) public String getPhnnumber() { return "1234556"; } } 

cosa dice esattamente questa class?