我正在使用 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;
}