Вы можете установить, какой объект является владельцем отношения, используя аннотации и установить способ хранения данных в базе данных.
Например, вы можете установить внешний ключ в таблице ClassB для ClassA. Список ClassB в сущности ClassA не имеет столбца в таблице ClassA, но этот список сохраняется как внешние ключи в ClassB. Для реализации этого вам нужно добавить значение mappedBy в аннотации «OneToMany» и добавить аннотацию «ManyToOne» в ClassB:
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER, mappedBy=classA)
List<ClassB> possibleValues;
В ClassB:
@Entity
public ClassB {
...
@ManyToOne
ClassA classA;
...
}
Есть и другие варианты, например, создавая joinTable для отношений, но, на мой взгляд, это более простое решение.
Если вы хотите создать схему базы данных на основе аннотаций JPA, вы должны добавить некоторые свойства конфигурации, например, это как добавить эту конфигурацию для JPA/Hibernate: Hibernate schema generation properties
Хорошо, что происходит в моей текущей ситуации, значения ClaasA сохраняются в таблице classa, значения ClassB соответствуют ClassA, сохраняются для класса b, и сопоставление таблицы сопоставлений как с первичным идентификатором было сгенерировано. ClassB не содержит '@ ManyToOne' .У вас есть идея для этой конфигурации? Должен ли я создать '@ ManyToOne' для classA, как вы предложили? – abc
Если вы не задаете аннотацию «ManyToOne», создается таблица соединений. Вы не можете хранить несколько внешних ключей ClassB в строке таблицы ClassA. Если аннотация «ManyToOne» задана в ClassB, внешние ключи ClassA могут быть сохранены в таблице ClassB, а таблица соединений не нужна. –
Спасибо :) Можете ли вы, плз, называть меня учебником, откуда я могу очистить понятия? – abc