java - 将三个表内连接到 java DTO

标签 java spring postgresql spring-boot spring-data-jpa

我遇到了以下问题... enter image description here

我试图以这种方式获得 processsubprocessProcessDTO 对象的 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: No converter found capable of converting from type [org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap] to type [dto.ProcessSubprocess]

我不确定这是否是正确的方法。

一种肮脏的方法是查找所有进程,存储在一个对象中,然后迭代它们并查找所有子进程...

是否有其他方法可以从 de BBDD 获取所有内容并将其放入对象中?

最佳答案

从该 DTO 创建一个接口(interface),以便 Spring 引擎可以选择它并自动创建结果对象:

public interface ProcessDto {

    Long getId();
    String getCode();
    String getName();
    String getSubprocessName();

}

有关该主题的更多信息 here

关于java - 将三个表内连接到 java DTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56427995/

相关文章:

java - 结果显示图像上有衬里

java - 点Tomcat 7使用不同的jdk

java - 通过注解配置 Spring Integration Control Bus

java - Azure DevOps Pipeline 中的 Maven 构建错误

java - 当用户上传时,在 jelastic 上上传的 maven/spring 有图像问题吗?

sql - 如何为整个表分配列并在postgresql中添加事件标志

postgresql - PGAdmin 4 无法无错误地备份数据库

java - Hibernate 返回两个 Pojo 并使用 jSTL 在 jsp 上显示结果

java - Maven 将 applicationContext.xml 从 src/main/resources 复制到 target/myproject/WEB-INF

PostgreSQL 建表语法