В зависимости от вашей реализации JPA вы можете установить взаимосвязь, просто комментируя поля модели. Например, здесь я использую аннотации Hibernate и java .persitence, чтобы улучшить отношения. У меня есть класс Account
, у которого есть список Subject
с. Аналогично, у моего Subject
есть список Account
с полями. Чтобы отобразить отношения, я использую аннотации java .persitence следующим образом:
Учетная запись класса. java
private List<Subject> subjects;
@ManyToMany(cascade = { CascadeType.ALL })
@JoinTable(
name = "account_subject",
joinColumns = { @JoinColumn(name = "account_id") },
inverseJoinColumns = { @JoinColumn(name = "subject_id") }
)
public List<Subject> getSubjects() {
if(subjects == null) {
return new LinkedList<Subject>();
}
return subjects;
}
Тема субъекта. java
private List<Account> accounts;
@ManyToMany(mappedBy = "subjects")
public List<Account> getAccounts() {
return accounts;
}
Это автоматически создаст таблицу соединения с именем account_subject
, содержащую два столбца account_id
и subject_id
, а строка cascade = { CascadeType.ALL }
обеспечит выполнение любой операции (update, delete et c ..) над обе сущности.
Чтобы сохранить сущность учетной записи с помощью Hibernate, вам просто нужно установить обязательное поле, например:
List<Subject> mySubjects = new List<Subject>();
mySubjects.add(mySubject);
myAccount.setSubjects(mySubjects);
и в вашем классе репозитория мы используем метод Hibernate saveOrUpdate()
сохраняться
sessionFactory.getCurrentSession().saveOrUpdate(myAccount);
, где sessionFactory
- это ваш объект Hibernate SessionFactory.