【发布时间】:2019-03-25 00:42:48
【问题描述】:
我正在使用 Spring Data JPA。我正在尝试使用Inner Join 从Employee 和Room Employee Mapping 表中获取记录。我想显示 Employee 表中的特定记录,所以我在 JPQL 查询中使用了 new map。
如果我从查询中删除特定记录,我会得到正确的加入结果,但是当我添加具有特定列的新地图时,我会收到以下错误
谁能告诉我我做错了什么?
RoomEmployeeMappingRepository
@Repository
public interface RoomEmployeeMappingRepository extends JpaRepository<RoomEmployeeMapping, Integer>{
@Query("select new map ( emp.sEmpName as sEmpName, emp.sDesignation as sDesignation, "
+ "emp.bIsPaid as bIsPaid , emp.sUnpaidComment as sUnpaidComment) from Employee as emp "
+ "Inner Join RoomEmployeeMapping as roomEmpMapping ON emp.nEmpId=roomEmpMapping.nEmpId "
+ "where roomEmpMapping.nRoomAllocationId=?1 ")
List<Employee> findByNRoomAllocationId(Integer nRoomAllocationId);
}
错误信息
"message": "No converter found capable of converting from type [java.util.HashMap<?, ?>] to type [com.spacestudy.model.Employee]",
【问题讨论】:
-
就像它说的那样。您不能从 HashMap 转换为 Employee。您查询的
new map部分是什么?
标签: spring-data-jpa jpql