如何从 select 语句中的子查询中获取列表? - querydsl

问题描述 投票:0回答:0

我正在使用 QueryDsl 查询 spring batch 数据库,但它不起作用。我正在使用 queryDsl,但如果仅使用 JPA 就可以获取数据,那不是问题。我想获取一些列(来自 batch_job_execution 的 job_execution_id,来自 batch_job_instance 的 job_name,以及来自 batch_job_execution_params 的 key_name 和 string_val,等等)。

数据模式是this.

我认为子查询的结果没有映射到 BatchJobParameterDTO。 我应该修理什么......?

提前致谢...

// queryDsl
jpaQueryFactory
                .select(Projections.constructor(BatchJobExecutionDTO.class,
                                qBatchJobExecutionEntity.jobExecutionId,
                                qBatchJobExecutionEntity.version,
                                JPAExpressions
                                        .select(
                                                Projections.constructor(BatchJobParameterDTO.class,
                                                        qBatchJobExecutionParamsEntity.keyName,
                                                        qBatchJobExecutionParamsEntity.stringVal
                                                ))
                                        .from(qBatchJobExecutionParamsEntity)
                                        .where(qBatchJobExecutionParamsEntity.jobExecutionId.eq(qBatchJobExecutionEntity.jobExecutionId)),
                                qBatchJobExecutionEntity.createTime,
                                qBatchJobExecutionEntity.startTime,
                                qBatchJobExecutionEntity.endTime,
                                qBatchJobExecutionEntity.status,
                                qBatchJobExecutionEntity.exitCode,
                                qBatchJobExecutionEntity.lastUpdated
                        )
                )
                .from(qBatchJobExecutionEntity)
                .join(qBatchJobInstanceEntity)
                .on(qBatchJobExecutionEntity.jobInstanceId.eq(qBatchJobInstanceEntity.jobInstanceId));
// BatchJobExecutionDTO
public class BatchJobExecutionDTO {
    private Long jobExecutionId;
    private Long version;
    private List<BatchJobParameterDTO> jobParameters;
    private LocalDateTime createTime;
    private LocalDateTime startTime;
    private LocalDateTime endTime;
    private String status;
    private String exitCode;
    private LocalDateTime lastUpdated;
}

// BatchJobParameterDTO 
public class BatchJobParameterDTO {
    private String keyName;
    private String stringVal;
}
spring jpa subquery spring-batch querydsl
© www.soinside.com 2019 - 2024. All rights reserved.