没有找到转换器错误

时间:2018-04-04 09:56:14

标签: mysql spring-boot soap spring-data-jpa

Query(value = "SELECT * FROM test where id = :key", nativeQuery=true)
 public User findById(@Param("key") String key);

以上查询工作正常。

Query(value = "SELECT * FROM test where id = :key", nativeQuery=true)
  public localhost._8080.ws.User findId(@Param("key") String key);

但是上面的查询得到的错误如下:

  

找不到能够从类型[org.springframework.data.jpa.repository.query.AbstractJpaQuery $ TupleConverter $ TupleBackedMap]转换为类型[localhost._8080.ws.User]的转换器

SOAP XSD创建了自动生成的类,并期望输出localhost._8080.ws.User类型,因为它会收到错误。

请就此错误提出建议。

1 个答案:

答案 0 :(得分:0)

Spring Data JPA不是要将SQL语句的任意结果映射到任意对象。

它将结果映射到DTO或投影。 很可能你生成的类具有它不知道如何处理的属性。

解决此问题的最明智的方法可能是让存储库返回它可以处理的内容(UserMap应该可以工作)并使用您自己的代码或从中创建所需的类型用于此类转换的库。 Dozer似乎是一个受欢迎的选择。