Ниже приведено сопоставление
Внутри A.class
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY,
orphanRemoval = true, mappedBy = "aObj")
private List<B> listB;
Внутри B.class
@ManyToOne(fetch = FetchType.LAZY)
@JsonIgnore
@JoinColumn(name = "a_id")
private A aObj;
У меня есть 2 объекта A и B. Объект A содержит список как отношение @OneToMany, а B содержит ссылку на A как двунаправленное отношение «один ко многим». Операция вставки работает нормально, но когда я пытаюсь обновить запись.
A a = repository.findById(1);
a.setName("Test Name");
repository.save(a);
Проблема здесь в том, что hibernate выполняет один дополнительный запрос select all all для получения List.
Последовательность следующая
Hibernate: select query for A
Hibernate: select all query for B
Hibernate: update query for A
Теперь, почему здесь выбираются все запросы для B Я определил стратегию ленивого извлечения на обоих концах.