【发布时间】:2019-10-19 01:06:22
【问题描述】:
我试图以这种方式拥有process 和subprocess 的ProcessDTO 对象的java 列表:
[{"process": {
"code": "AB",
"name": "Proc1"
"subprocesses":
[{"code": "cd", "name": "subProc1"}],
[{"code": "ef", "name": "subProc2"}],
[{"code": "gh", "name": "subProc3"}]
}
}]
这是我到现在为止的:
SELECT distinct C.code as process_code, C.name as process_name, A.code as subprocess_code, A.name as subprocess_code FROM subprocess A
inner join zone B
on A.id = B.subprocess_id
inner join process C
on C.id = B.process_id
ORDER BY C.code;
但是当我创建 DTO 类时:
public class ProcessDto {
private Long id;
private String code;
private String name;
private List<Subprocess> subprocess;
}
还有查询:
@RepositoryRestResource(itemResourceRel = "process", collectionResourceRel = "processes", path = "process")
public interface ProcessDataRestRepository extends JpaRepository<Process, Long> {
@Query("Select p.code, p.name, sp.code, sp.name " +
"from Process p " +
"inner join Zone z on p.id = z.process " +
"inner join Subprocess sp on sp.id = z.subprocess")
List<ProcessDto> findProcessesAndSubprocesses();
}
我收到以下错误:
org.springframework.core.convert.ConverterNotFoundException: 否 发现能够从类型转换的转换器 [org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap] 输入 [dto.ProcessSubprocess]
我不确定这是否是正确的方法。
一种肮脏的方法是查找所有进程,存储在一个对象中,然后迭代它们并找到所有子进程......
还有其他方法可以将 de BBDD 中的所有内容都带入一个对象中吗?
【问题讨论】:
标签: java spring postgresql spring-boot spring-data-jpa