如何通过弹簧数据JPA处理分层查询(Oracle)?其中SQL包括START WITH .... CONNECT BY

By simon at 2018-02-07 • 0人收藏 • 24人看过

我正在努力实现以下的事情,[链接 1](https://docs.oracle.com/cd/B19306_01/server.102/b14200/queries003.htm),[链接 2](http://etutorials.org/SQL/Mastering+Oracle+SQL/Chapter+8.+Hierarchical+Queries/8.4+Complex+Hierarchy+Operations/) 运用弹簧数据JPA。 我不幸地尝试了很多次,每次都失败了,所以我想我们来问吧 一个问题给我的朋友,可能是你们可以帮我摆脱这一点 问题。 其实我每次都得到以下错误,

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查询在数据库中完美执行。

1 个回复 | 最后更新于 2018-02-07
2018-02-07   #1

如果没有看到你的学生实体和映射,这很难回答 定义的也不是Student表格的布局。一般我已经看到了这种类型 的问题,如果你已经映射了更多的列在你的实体,那么你正在尝试 返回你的祖籍红霉素。原因是冬眠将仍然尝试映射 其他列在您的实体映射,但无法找到列名称 在您的本机查询返回的结果集中。检查你的实体映射和 正在被返回的列查询。

登录后方可回帖

Loading...