LEFT JOIN with ON - Spring 中的 JPA 存储库
LEFT JOIN with ON - JPA Repository in Spring
我正在开发一个 Spring 启动应用程序并在我的存储库中努力处理一个 SQL-Query。
查询应该 select 来自从未在我的 Web 应用程序中发布的员工的所有 ID。
在 MySQL Workbench 中,下面的语句是有效的,我得到了预期的结果。
SELECT e.id FROM employees e LEFT JOIN posts p ON p.owner_id = e.id WHERE p.owner_id IS NULL
但我无法找到如何在我的 PostRepository 中编写它,它从 Spring 扩展了一个 JpaRepository。
这是错误信息
o.h.hql.internal.ast.ErrorCounter : Invalid path: 'p.owner_id
这是我在存储库中使用的语句。
@Query("SELECT e FROM employees e LEFT JOIN p.posts p ON p.owner_id = e.id WHERE p.owner_id IS NULL")
List<Employee> getEmployeeIdsNeverVoted();
我不知道如何使用 "ON" 并为其定义路径。
您的查询和您的字符串在您要加入的 table 上看起来不一样。您的查询中有 'posts p',但字符串查询中有 p.posts p,查询中有 e.id,但字符串查询中有 e:
SELECT e.id FROM employees e LEFT JOIN posts p ON p.owner_id = e.id WHERE p.owner_id IS NULL
@Query("SELECT e FROM employees e LEFT JOIN p.posts p ON p.owner_id = e.id WHERE p.owner_id IS NULL")
我正在开发一个 Spring 启动应用程序并在我的存储库中努力处理一个 SQL-Query。 查询应该 select 来自从未在我的 Web 应用程序中发布的员工的所有 ID。
在 MySQL Workbench 中,下面的语句是有效的,我得到了预期的结果。
SELECT e.id FROM employees e LEFT JOIN posts p ON p.owner_id = e.id WHERE p.owner_id IS NULL
但我无法找到如何在我的 PostRepository 中编写它,它从 Spring 扩展了一个 JpaRepository。 这是错误信息
o.h.hql.internal.ast.ErrorCounter : Invalid path: 'p.owner_id
这是我在存储库中使用的语句。
@Query("SELECT e FROM employees e LEFT JOIN p.posts p ON p.owner_id = e.id WHERE p.owner_id IS NULL")
List<Employee> getEmployeeIdsNeverVoted();
我不知道如何使用 "ON" 并为其定义路径。
您的查询和您的字符串在您要加入的 table 上看起来不一样。您的查询中有 'posts p',但字符串查询中有 p.posts p,查询中有 e.id,但字符串查询中有 e:
SELECT e.id FROM employees e LEFT JOIN posts p ON p.owner_id = e.id WHERE p.owner_id IS NULL
@Query("SELECT e FROM employees e LEFT JOIN p.posts p ON p.owner_id = e.id WHERE p.owner_id IS NULL")