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类型,因为它会收到错误。
请就此错误提出建议。
答案 0 :(得分:0)
Spring Data JPA不是要将SQL语句的任意结果映射到任意对象。
它将结果映射到DTO或投影。 很可能你生成的类具有它不知道如何处理的属性。
解决此问题的最明智的方法可能是让存储库返回它可以处理的内容(User
或Map
应该可以工作)并使用您自己的代码或从中创建所需的类型用于此类转换的库。
Dozer似乎是一个受欢迎的选择。