@Access 어노테이션은 프로퍼티에 접근하는 방식을 정하는데, JPA Annocation은 클래스의 멤버 필드(AccessType.Field) 또는 Get 메소드(AccessType.Property)에 부여할 수 있으며 동시에 부여할 수 없고 반드시 한쪽에만 부여해야 한다. JPA 명세에는 속성(필드)과 Get 메소드 중 어디를 디폴트로 할지 정해져 있지 않으며 명세를 구현한 벤더에 따라 다르다. 보통은 @Id 어노테이션이 부여된 곳을 기준으로 하므로 @Id 어노테이션을 필드에 부여했으면 필드를 기준으로 영속화가 이루어지고 메소드에 부여했으면 Get 메소드를 기준으로 영속화가 이루어진다. 명시적으로 @Access(AccessType.FIELD/AccessType.PROPERTY)를 이용해 지정 가능하다. AccessType.FIELD인 경우 영속화 과정에서 필드에 데이터를 설정하거나 읽어 올때 메소드를 통하지 않고 직접 필드에 접근해서 읽어오기 때문에 Getter 메소드에 별도의 로직이 존재하는 경우 동작하지 않는다. AccessType이 PROPERTY인 경우는 그 반대로 동작한다. 필드명과 Get 메소드 이름이 다른 경우, 예를 들면 월급을 제외한 다른 값들은 멤버 필드를 통해 엑세스 하지만 월급의 경우 별도의 로직을 통해 변환된 값을 데이터 베이스에 저장해야 하는 경우에는 @Transient 어노테이션을 멤버 필드에 부여해 영속화에서 제외시키고 대신 Get 메소드를 통해 접근하도록 설정해 변환된 값이 저장되도록 할 수 있다.