单个表的递归迭代器



我有一个表,其中外键引用同一表的 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,或者,一种关于如何直接使用 JPA 使用实体和递归的方法或一些想法。

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

最新更新