gpt4 book ai didi

java - 如何通过 spring data JPA 处理分层查询(Oracle)?其中 SQL 包括 START WITH... CONNECT BY

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:23:40 25 4
gpt4 key购买 nike

我正在努力实现以下目标,Link 1 , Link 2使用 spring 数据 JPA。

我尝试了很多次,不幸的是每次都失败了,所以我想问问我的 friend 们,也许你们可以帮助我摆脱这个问题。

实际上,我每次都会收到以下错误,

org.hibernate.engine.jdbc.spi.SqlExceptionHelper.logExceptions(SqlExceptionHelper.java:127) [jdbc.spi.SqlExceptionHelper] [main] SQL Error: 17006, SQLState: null
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.logExceptions(SqlExceptionHelper.java:129) [jdbc.spi.SqlExceptionHelper] [main] Invalid column name

我在 JPA 存储库中的代码是:-

String QUERY = "select * from ( select"
+ " student_id, student_activity_id, student_type_id, LEVEL,"
+ " SYS_CONNECT_BY_PATH(student_id, '/') \"Path\"" + " FROM student"
+ " where student_type_id = 1" + " START WITH student_id = ?1"
+ " connect by NOCYCLE PRIOR student_activity_id = student_id order by level desc"
+ ") a where rownum = 1";

@Query(nativeQuery = true, value = QUERY)
Student getNextStudent(Long parentStudentId);

注意 - 上面提到的 SQL 查询在数据库中完美执行。

最佳答案

如果没有看到您的 Student 实体和定义的映射,也没有看到 Student 表的布局,这很难回答。一般来说,如果您在您的实体中映射了更多列,然后您试图在您的 native 查询中返回,我就会看到这种类型的问题。原因是 hibernate 仍会尝试映射在您的实体中映射的其他列,但它无法在您的 native 查询返回的结果集中找到列名。检查您的实体映射和查询中返回的列。

关于java - 如何通过 spring data JPA 处理分层查询(Oracle)?其中 SQL 包括 START WITH... CONNECT BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48638819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com