K.N*_*las 2 java spring spring-data spring-data-jpa
有没有办法TupleConverter在 Spring Data 中编写和注册转换器?当我在 Repository 接口中有一个 @Query 注释并要求投影时,我收到了这个异常。
界面:
public interface ProjectRepository extends JpaRepository<Project, Integer> {
@Query("select p.projectId, p.projectName, p.techstack from Project p")
public List<ProjectItem> findAllForTest();
}
Run Code Online (Sandbox Code Playgroud)
DTO:
public class ProjectItem {
private final Integer projectId;
private final String projectName;
private final String techstack;
@JsonCreator
public ProjectItem(
@JsonProperty("projectId") Integer projectId,
@JsonProperty("projectName") String projectName,
@JsonProperty("techstack") String techstack
) {
this.projectId = projectId;
this.projectName = projectName;
this.techstack = techstack;
}
public Integer getProjectId() {
return projectId;
}
public String getProjectName() {
return projectName;
}
public String getTechstack() {
return techstack;
}
}
Run Code Online (Sandbox Code Playgroud)
例外
没有发现转换器能够从类型 [org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap] 转换为类型 [project.item.ProjectItem]] 的根本原因
使用JPQL 构造函数表达式:
@Query("select new com.company.path.to.ProjectItem(p.projectId, p.projectName, p.techstack) from Project p")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5170 次 |
| 最近记录: |