【问题标题】:Recursive Iterator for a single table单个表的递归迭代器
【发布时间】:2019-06-14 13:56:23
【问题描述】:

我有一个表,其中外键引用同一个表的 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 直接使用实体和递归进行操作。

【问题讨论】:

  • 我的回答对您有任何帮助吗?
  • @SimonMartinelli 抱歉,我使用的是 PostgreSQL,但我错了,我使用的是 Oracle 数据库。目前我还没有设法得到解决方案,我什至尝试了原生查询。
  • 我也添加了 Oracle 的文档

标签: java sql jpa recursive-query


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-09
    • 2016-07-21
    • 2011-05-11
    • 1970-01-01
    • 2012-11-06
    • 2012-10-17
    相关资源
    最近更新 更多