首页 > 解决方案 > @Query 连接两个表

问题描述

我正在尝试使用 @Query 方法将两个实体加入第三个实体。

@Query("SELECT new com.concretepage.entity.DeptEmpDto(d.departmentId,d.departmentName,d.managerId,d.locationId,e.employeeId,e.firstName,e.lastName,e.phoneNumber,e.hireDate,e.jobId,e.salary,e.commissionPct) FROM Employee e INNER JOIN Department d")
List <DeptEmpDto> fetchEmpDeptDataInnerJoin();

您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以获取在第 1 行的 '' 附近使用的正确语法。

我不明白我的错误在哪里。任何帮助将不胜感激:)。

标签: javaspringjpaspring-data-jpajpql

解决方案


ON使用子句连接表后,您错过了连接条件。因此,只需使用以下命令更改您的查询:

@Query("SELECT new com.concretepage.entity.DeptEmpDto(d.departmentId,d.departmentName,d.managerId,d.locationId,e.employeeId,e.firstName,e.lastName,e.phoneNumber,e.hireDate,e.jobId,e.salary,e.commissionPct) FROM Employee e INNER JOIN Department d on e.joining_column_from_table1=d.joining_column_from_table2")

确保 分别用表中的列名 替换joining_column_from_table1joining_column_from_table2EmployeeDepartment


推荐阅读