Поиск…


замечания

Отношения между сущностями

Внешний ключ может быть одним или несколькими столбцами, которые ссылаются на уникальный ключ, обычно первичный ключ, в другой таблице.

Внешний ключ и основной родительский ключ, на которые он ссылается, должны иметь одинаковое количество и тип полей.

Внешние ключи представляют отношения из столбца или столбцов в одной таблице столбцу или столбцам в другой таблице.

Множественность сущностных отношений

Множественность сущностных отношений

Множества имеют следующие типы:

  • Индивидуально : каждый экземпляр объекта связан с одним экземпляром другого объекта.
  • Один-ко-многим : экземпляр объекта может быть связан с несколькими экземплярами других объектов.
  • «Много-к-одному» : несколько экземпляров объекта могут быть связаны с одним экземпляром другого объекта.
  • Многие-ко-многим : экземпляры объектов могут быть связаны с несколькими экземплярами друг друга.

Индивидуальное сопоставление

Индивидуальное сопоставление определяет однозначную связь с другой сущностью, которая имеет множественность один-к-одному. Это сопоставление отношений использует аннотацию @OneToOne для соответствующего постоянного свойства или поля.

Пример: объекты Vehicle and ParkingPlace .

Сопоставление «один ко многим»

Экземпляр объекта может быть связан с несколькими экземплярами других объектов.

Соотношения «один ко многим» используют аннотацию @OneToMany в соответствующем постоянном свойстве или поле.

Элемент mappedBy необходим для ссылки на атрибут, аннотированный ManyToOne в соответствующем объекте:

 @OneToMany(mappedBy="attribute")

Ассоциация «один ко многим» должна отображать коллекцию объектов.

Сопоставление «много-к-одному»

@ManyToOne сопоставление определяется путем аннотации атрибута в исходном объекте (атрибуте, который относится к целевому объекту) с аннотацией @ManyToOne .

@JoinColumn(name="FK_name") описывают ключ для взаимодействия.

Отображение многих ко многим

Экземпляры сущности могут быть связаны с несколькими экземплярами друг друга.

@ManyToMany Many-to-many используют аннотацию @ManyToMany в соответствующем постоянном свойстве или поле.

Мы должны использовать третью таблицу для сопоставления двух типов сущностей (join table).

@JoinTable Пример аннотации

При сопоставлении отношений «многие ко многим» в JPA конфигурация таблицы, используемой для соединения внешних ключей, может быть предоставлена ​​с @JoinTable аннотации @JoinTable :

@Entity
public class EntityA {
   @Id
   @Column(name="id")
   private long id;
   [...]
   @ManyToMany
   @JoinTable(name="table_join_A_B",
              joinColumns=@JoinColumn(name="id_A"), referencedColumnName="id"
              inverseJoinColumns=@JoinColumn(name="id_B", referencedColumnName="id"))
   private List<EntityB> entitiesB;
   [...]
}

@Entity
public class EntityB {
   @Id
   @Column(name="id")
   private long id;
   [...]
}

В этом примере, который состоит из EntityA , имеющие много-ко-многим отношения к EntityB, осуществлянного entitiesB области, мы используем @JoinTable аннотации , чтобы указать , что имя таблицы для присоединения таблицы table_join_A_B , состоящее из колонн id_A и id_B , внешние ключи, соответственно ссылающиеся на id столбца в таблице EntityA и в таблице EntityB; (id_A,id_B) будет составным первичным ключом для таблицы table_join_A_B .



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow