单个表的递归迭代器

时间:2019-06-06 13:01:52

标签: java sql jpa recursive-query

我有一个表,其中外键引用同一表的ID。我需要找到第一个作为参数传递给我的元素的子元素,直到达到一定水平为止。

我需要找到一个元素的所有子元素。

我第一次拥有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_FK字段中找到ID列的每个结果,直到在ISLAST列中找到一个S。

"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,或者是直接通过Entities和递归使用JPA进行编码的方式或想法。

1 个答案:

答案 0 :(得分:1)

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