Я использую spring + jpa + hibernate и мне нужно чтобы у объекта родителя (пользователь) было много потомков (заметок), следовательно я должен использовать аннотации ManyToOne и OneToMany, но насколько я понимаю аннотацией ManyToOne помечается родитель, а потомки соответственно OneToMany, но мне надо наоборот.
Я правильно понимаю что без промежуточных таблиц не обойтись (использовать ManyToMany)?
Советую всегда читать документацию. У тебя обычная ситуация - один ко многим. Делаешь примерно так (я пропустил все свойства и методы, которые не относятся к деу):
@Entity
public class User {
//...
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Note> notes = new ArrayList<>();
//...
public void addNotes(Note... notes) {
for (Note note : notes) {
note.setUser(this);
this.notes.add(note);
}
}
}
@Entity
public class Note {
//...
@ManyToOne
private User user;
//...
}
Это bidirectional вариант, самый оптимальный. Заметки добавляются Юзеру через метод addNotes (он нужен для синхронизации обоих сторон). За счет каскадинга, сохранение Юзера и всех его заметок происходит через один вызов метода save() репозитория Юзера:
User user = new User(...);
user.addNotes(new Note(...), new Note(...));
userRepo.save(user);
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости