java - 单表的递归迭代器

标签 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,或者如何直接使用 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

关于java - 单表的递归迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56478186/

相关文章:

mysql - 如果存在于 SQL/MySQL 上,哪一个在检查和跳过插入上更快

mysql - 使用子选择删除

java - HIbernate JPA与javassist.util.proxy.Proxy不兼容导致

java - weblogic.utils.compiler.ToolFailureException Weblogic 12.2.1

java - 在 Swing 中设置 GridLayout 的 JPanel 的边距

java - 如何使用 Spring jdbc 模板(jdbcTemplate 或 namedParameterJDBCTem)从数据库中检索值

java - Java 应用程序中的 PKIX 路径构建失败

mysql - 如何根据另一个表中的值设置一个表的字段

java - 使用 JPA 读取多个结果集

java - "NOT IN ` 子查询 `"语句与 JPA Criteria API