Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
382 views
in Technique[技术] by (71.8m points)

mysql - How to implement CTE query via HQL in Java

I have written a MySQL query and I'm trying to implement via Hibernate. Please help us to resolve this. My MySQL CTE query:

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;

Hibernate code:

interface Employeerepository extends JpaRepository<Employee, String>{
  @Query("above query")
  List<Object> getEMployeeDetails(String employeeId);
}
question from:https://stackoverflow.com/questions/65859752/how-to-implement-cte-query-via-hql-in-java

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

CTEs are not yet supported in HQL, but I'm working on changing this for 6.0. In the meantime, you can use the native query approach as suggested by Mark Rotteveel, or you take a look at what Blaze-Persistence can do for you here, which supports CTEs and also comes with a Spring Data integration.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...