Для чего эти аннотации, и какие плюсы и минусы 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.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Не знаю при каких условиях, но иногда перестает работать мой сервис по отлову уведомленийВот код:
Прочитал о изменениях в java и немного испугалсяОдно из нововведений будет удаление JavaFX, как я понял удаление полное
Не могу протестировать GUI в своем приложении с помощью библиотеки AssertJЧтоб не выкладывать весь код своей программы, написал тестовую программу,...