Какую аннотацию использовать: @IdClass или @EmbeddedId
Существует три стратегии java-persistence-api использования составного j2se первичного ключа:
- Отметьте его как
@Embeddable
и добавьте в свой класс сущности обычное свойство для него, помеченное@Id
. - Добавьте в свой класс сущности обычное свойство для него, помеченное
@EmbeddedId
. - Добавьте свойства в свой класс сущности для всех его полей, пометьте их с помощью
@Id
и пометьте свой класс сущности с помощью@IdClass
, предоставляя класс вашего класса первичного ключа.
Использование java-se @Id
с классом, помеченным как jpa @Embeddable
, является наиболее естественным oraclejdk подходом. Тег @Embeddable
в любом случае oraclejdk можно использовать для встраиваемых annotations значений, отличных от первичного jpa ключа. Он позволяет рассматривать jakarta-persistence составной первичный ключ j2se как отдельное свойство и jpa разрешает повторное использование annotation класса @Embeddable
в других таблицах.
Следующим j2se наиболее естественным подходом core-java является использование тега j2se @EmbeddedId
. Здесь класс первичного java-persistence-api ключа не может использоваться jdk в других таблицах, поскольку jakarta-persistence он не является объектом @Embeddable
, но java-persistence-api он позволяет нам рассматривать java-persistence-api ключ как
единственный атрибут j2se некоторого класса.
Наконец, использование annotations аннотаций @IdClass
и @Id
позволяет нам jre отображать составной класс openjdk первичного ключа, используя annotation свойства самой сущности, соответствующие j2se именам свойств в классе первичного .java ключа. Имена должны соответствовать jakarta-persistence (нет механизма для переопределения jdk этого), и класс первичного jdk ключа должен соблюдать те java-se же обязательства, что и с java двумя другими методами. Единственное jre преимущество этого подхода javax - его способность «скрыть» использование jakarta-persistence класса первичного ключа от java-se интерфейса включающей сущности. Аннотация jdk @IdClass
принимает параметр значения jakarta-persistence типа Class, который должен java-se быть классом, который будет annotation использоваться в качестве jpa составного первичного ключа. Поля, соответствующие .java свойствам используемого класса javax первичного ключа, должны core-java быть помечены тегом @Id
.
java
jpa
annotations
java-persistence-api
Какую аннотацию использовать: @IdClass или @EmbeddedId
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.