Я использую MySQL и JPA 1.9.4
Я хочу получить список объектов A со всей полной таблицей B и вложенной таблицей D, где D является множеством.
Сущность A: id b_id (много к 1) число
Сущность B: id c_id (много к 1) b_d (много ко многим) число
Объект C: идентификационный номер
Сущность D: идентификатор
Сущность B_E: b_id (много к 1) d_id (много к 1)
Мне удалось получить список объектов A с соответствующими объектами B и C, используя этот запрос:
@Query(value =
"SELECT a1.* " +
"FROM A a1 " +
"LEFT JOIN B b1 ON a1.b_id = b1.id " +
"LEFT JOIN C c1 ON b1.c_id= c1.id " +
"WHERE c1.number= ?1 AND a1.number= ?2 " +
"ORDER BY b1.number ASC ;", nativeQuery = true)
Таким образом, мне не удается получить набор D внутри B внутри A. И обычно выдается следующая ошибка:
Unable to evaluate the expression Method threw 'org.hibernate.LazyInitializationException'
Собственный запрос не принимает выборку соединения. Когда я пытаюсь не использовать собственный запрос, мне не удается использовать последовательное множественное соединение и выборку.
Я тоже пробовал это:
@Query(
"SELECT a1" +
"FROM A a1" +
"LEFT JOIN FETCH a1.b b1" +
"LEFT JOIN FETCH b1.c bc1" +
"LEFT JOIN FETCH b1.d b1d" +
"WHERE bc1.number = ?1 AND a1.number= ?2 " +
"ORDER BY b1.number ASC")
Синтаксис кажется не очень хорошим и недостаточным.
Не могли бы вы помочь мне, пожалуйста?
Спасибо
Маню