Я пытался объединить проекцию с @Query
, и я получаю NoConverterFoundException
. Я не могу найти в документации, где это конкретно не разрешено. Я знаю, что могу проецировать Project
на ProjectItem
, потому что, если я делаю то же самое без аннотации @Query
, это работает. Нужно ли специально регистрировать конвертер для этого?
Интерфейс моего репозитория
public interface ProjectRepository extends JpaRepository<Project, Integer> {
// Doesn't work?
@Query("select p from Project p")
public List<ProjectItem> findAllForTest();
// Work's okay.
public List<ProjectItem> findAllBy();
}
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;
}
}
И ошибка
2018-05-07 10: 23: 02.047 ОШИБКА 9668 --- [o-auto-1-exec-4] oaccC [. [. [/]. [DispatcherServlet]: Servlet.service () для сервлета [ dispatcherServlet] в контексте с путем [] выдало исключение [Ошибка обработки запроса; вложенное исключение: org.springframework.core.convert.ConverterNotFoundException: не найден конвертер, способный преобразовать тип [employeeeproject.model.Project] в тип [project.item.ProjectItem]] с первопричиной