Java Spring数据JPA和投影获取转换器TupleConverter的NotFoundException

Java Spring数据JPA和投影获取转换器TupleConverter的NotFoundException,java,spring,spring-data,spring-data-jpa,Java,Spring,Spring Data,Spring Data Jpa,有没有办法在Spring数据中写入和注册TupleConverter转换器?当我在存储库界面中有一个@Query注释并请求投影时,我会遇到这个异常 界面: public interface ProjectRepository extends JpaRepository<Project, Integer> { @Query("select p.projectId, p.projectName, p.techstack from Project p") public Li

有没有办法在Spring数据中写入和注册
TupleConverter
转换器?当我在存储库界面中有一个@Query注释并请求投影时,我会遇到这个异常

界面:

public interface ProjectRepository extends JpaRepository<Project, Integer> {
    @Query("select p.projectId, p.projectName, p.techstack from Project p")
    public List<ProjectItem> findAllForTest();
}
例外

找不到能够从类型[org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap]转换为类型[project.item.ProjectItem]]的转换器,其根本原因是


你很接近。如果您只需要一个DTO,其中包含原始项中的一些项,则只需使用与
项目
类方法项具有相同签名的方法:

public interface ProjectTestSummary {
    public Integer getProjectId();
    public String getProjectName();
    public String getTechstack();
}
在你的道中:

public interface ProjectRepository extends JpaRepository<Project, Integer> {
    public List<ProjectTestSummary> findAllProjectedBy();
}
public interface ProjectRepository扩展了JpaRepository{
公共列表findAllProjectedBy();
}
使用:


在我尝试使用
FeignClient
之前,这是有效的,然后Feign无法解码接口版本。“feign.codec.DecodeException:类型定义错误:[简单类型,类project.item.ProjectSummary];嵌套异常为com.fasterxml.jackson.databind.exc.InvalidDefinitionException:无法构造
project.item.ProjectSummary
(不存在与默认构造类似的创建者):抽象类型需要映射到具体类型,具有自定义反序列化程序,或包含其他类型信息“PS>感谢您的双重回答!哦有趣的用例。在你的问题中,我会清楚地说明你试图用Feign完成什么,否则,解决方案将只是解决他们答案中的投影问题。但是为此编写测试用例是困难的,即使使用
Feign客户机
,但我必须指定不美观的属性。
public interface ProjectRepository extends JpaRepository<Project, Integer> {
    public List<ProjectTestSummary> findAllProjectedBy();
}
@Query("select new com.company.path.to.ProjectItem(p.projectId, p.projectName, p.techstack) from Project p")