Рекурсивный итератор для одной таблицы - PullRequest
0 голосов
/ 06 июня 2019

У меня есть таблица, в которой внешний ключ ссылается на идентификатор той же таблицы.Мне нужно найти дочерние элементы первого элемента, которые передают меня в качестве параметра, пока я не достигну определенного уровня.

Мне нужно найти все дочерние элементы одного элемента.

Первый разУ меня был ID_FK, но после этого я

" ";"ID";"ID_FK";"ISLAST"
"1";"12519";"12518";"N"
"2";"12520";"12518";"N"
"3";"12521";"12518";"N"
"4";"12522";"12518";"N"
"5";"12523";"12518";"N"

Но потом я должен найти каждый из результатов столбца ID в поле ID_FK, пока не найду S в столбце ISLAST.

"ID";"ID_FK";"ISLAST"
"12543";"12519";"N"

Рекурсивно до:

"ID";"ID_FK";"ISLAST"
"12519";"12568";"S"

Результат:

" ";"ID";"ID_FK";"ISLAST"
"1";"12519";"555018";"s"
"2";"12520";"112318";"s"
"3";"12521";"128818";"s"
"4";"12522";"133888";"s"
"5";"12523";"125888";"s"

Мне нужен запрос, чтобы его можно было передать в JPA, илииначе, способ или некоторое представление о том, как сделать это с помощью JPA напрямую с сущностями и рекурсией.

1 Ответ

1 голос
/ 06 июня 2019

JPA не поддерживает рекурсию.

Вам придется использовать SQL.

Вот документация PostgreSQL и его рекурсивной функциональности:

https://www.postgresql.org/docs/current/queries-with.html

А вот документация Oracle для рекурсивных запросов:

https://docs.oracle.com/cd/B19306_01/server.102/b14200/queries003.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...