Для чего эти аннотации, и какие плюсы и минусы AccessType.FIELD и AccessType.PROPERTY. Объясните пожалуйста.
Habr:
@Access нужна для определения типа доступа (access type) для класса entity, суперкласса, embeddable или отдельных атрибутов, то есть как JPA будет обращаться к атрибутам entity, как к полям класса (FIELD) или как к свойствам класса (PROPERTY), имеющие гетеры (getter) и сетеры (setter).
Если вы хотите, чтобы ваши поля были доступны как обычные поля, но есть одно поле, для доступа к которому вы хотите использовать геттер или сеттер, вы можете предоставить аннотацию @Access.
Эта аннотация имеет два режима: AccessType.FIELD и AccessType.PROPERTY.
Мы можем явно указать тип доступа, используя AccessType.PROPERTY или AccessType.FIELD в @Access аннотации. Мы можем использовать @Access на уровне класса, поля или метода. Мы можем даже смешивать два типа в одном классе сущностей.
Перевод ответа с ответа с enSO:
По умолчанию тип доступа определяется местом, в котором находится ваш
идентификатор(@ Id). Если он будет в поле - это будет
AccessType.FIELD, если он будет в геттере - это
AccessType.PROPERTY.
Иногда вам может потребоваться аннотировать не поля, а свойства
(например, потому что вы хотите иметь какую-то произвольную логику в
геттере или потому, что вы так предпочитаете). В такой ситуации вы
должны определить геттер и аннотировать его как AccessType.PROPERTY.
Обобщение: вы можете использовать аннотацию AccessType.FIELD для 'обычного' доступа к полю, и аннотацию AccessType.PROPERTY для доступа к полю через get/set.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости