Куда поместить, в спящем режиме аннотации?

Куда я помещаю мой быть в спящем режиме аннотации?

Действительно ли это - строка выше моей переменной экземпляра? Или перед методом считывания? Или перед методом set? Или это действительно не имеет значения?

Большое спасибо

19
задан Chris 20 July 2010 в 02:10
поделиться

2 ответа

Вы помещаете их либо в ] поле или в геттере . Из Справочного руководства по аннотациям Hibernate:

2.2.1. Пометка POJO как постоянного объекта

(...)

В зависимости от того, комментируете ли вы поля или методы, тип доступа используется Hibernate будет полем или имущество. Спецификация EJB3 требует, чтобы вы объявляете аннотации к элементу тип, к которому будет осуществляться доступ, т. е. метод получения, если вы используете свойство доступ, поле, если вы используете поле доступ. Смешивание аннотаций в обоих полей и методов следует избегать. Hibernate угадает тип доступа с позиции @Id или @EmbeddedId.

Вы также можете прочитать об аннотации @Access , которая позволяет принудительно / переопределить тип доступа (до Hibernate Annotations 3.5 и JPA 2.0 она была частью расширений Hibernate Annotation Extensions):

2.2.2.2. Тип доступа

По умолчанию тип доступа класса иерархия определяется положением аннотаций @Id или @EmbeddedId.Если эти аннотации находятся в поле, то рассматриваются только поля для настойчивость и состояние доступно через поле. Если есть аннотации находятся на геттере, тогда только геттеры считаются за настойчивость и состояние доступно через геттер / сеттер. Это хорошо работает в практика и рекомендуется подход.

Примечание

Размещение аннотаций в иерархии классов должно быть согласованным. (на поле или на участке) быть возможность определить доступ по умолчанию тип. Рекомендуется придерживаться одно единственное размещение аннотации стратегия на протяжении всего вашего применение.

Однако в некоторых ситуациях вам понадобится в:

  • заставить тип доступа иерархии сущностей
  • переопределить тип доступа конкретной сущности в иерархии классов
  • переопределить тип доступа встраиваемого типа

Лучшим вариантом использования является встраиваемый класс, используемый несколькими объектами, которые может не использовать один и тот же тип доступа. В в этом случае лучше заставить тип доступа во встраиваемом классе уровень.

(...)

Что касается плюсов и минусов обоих стилей, я предлагаю прочитать следующие вопросы:

22
ответ дан 30 November 2019 в 04:24
поделиться

Это зависит от вашего стиля. Вы можете поставить его перед полем или перед геттером. В строгом JPA аннотации к сеттерам игнорируются, но я не уверен, следует ли за этим Hibernate.

Вам либо нужно быть последовательным во всей своей сущности, либо вам нужно предоставить аннотацию @Access в верхней части класса с режимом по умолчанию и еще одну @Access перед каждым полем / свойством, которое вы хотите отклонить от текущего класса режим.

2
ответ дан 30 November 2019 в 04:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: