微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java中如何通过HQL实现CTE查询

如何解决Java中如何通过HQL实现CTE查询

我已经编写了一个 MysqL 查询,并且正在尝试通过 Hibernate 来实现。请帮助我们解决这个问题。我的 MysqL CTE 查询

WITH RECURSIVE employeeCte AS
(
    select  employee_id,employee_name,manager_id,1 AS LEVEL from employee where employee_id = ?
    union all
    select  e.employee_id,e.employee_name,e.manager_id,LEVEL + 1 from employee  e join employeeCte m
    on e.employee_id = m.manager_id
)
select * from employeeCte;

休眠代码

interface Employeerepository extends JpaRepository<Employee,String>{
  @Query("above query")
  List<Object> getEMployeeDetails(String employeeId);
}

解决方法

HQL 尚不支持 CTE,但我正在努力将其更改为 6.0。同时,您可以使用 Mark Rotteveel 建议的原生查询方法,或者您可以在此处查看 Blaze-Persistence 可以为您做什么,其中 supports CTEs 还带有 {{3} }.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。