【问题标题】:Spring data JPA : No converter found capable of converting from typeSpring data JPA:找不到能够从类型转换的转换器
【发布时间】:2019-03-25 00:42:48
【问题描述】:

我正在使用 Spring Data JPA。我正在尝试使用Inner JoinEmployeeRoom 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


【解决方案1】:

你应该像这样返回 Employe 实例:

select new com.path.to.Employee( emp.sEmpName as sEmpName, emp.sDesignation as sDesignation, "
        + "emp.bIsPaid as bIsPaid , emp.sUnpaidComment as sUnpaidComment)....

确保您使用 Employee 类的完全限定路径,并且您有一个与传递的属性匹配的构造函数。

【讨论】:

    猜你喜欢
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    • 2021-11-19
    • 2019-12-28
    • 2014-09-19
    • 1970-01-01
    相关资源
    最近更新 更多