我使用Spring Boot并遇到了同样的问题。我有一个视图,从各种Spring Batch表中获取各种字段,以显示用户运行的作业的状态。经过一些实验,以下工作:
@Entity
public class Job {
@Id
@Column(name = "JOB_INSTANCE_ID")
private String jobInstanceId;
@Column(name = "JOB_EXECUTION_ID")
private String jobExecutionId;
@Column(name = "JOB_NAME")
private String jobName;
@Column(name = "JOB_TYPE")
private String jobType;
@Column(name = "START_TIME")
private Date startTime;
@Column(name = "END_TIME")
private Date endTime;
@Column(name = "STATUS")
private String status;
@Column(name = "USERNAME")
private String username;
public String getJobInstanceId() {
return jobInstanceId;
}
public void setJobInstanceId(String jobInstanceId) {
this.jobInstanceId = jobInstanceId;
}
public String getJobName() {
return jobName;
}
public void setJobName(String jobName) {
this.jobName = jobName;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getJobType() {
return jobType;
}
public void setJobType(String jobType) {
this.jobType = jobType;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getJobExecutionId() {
return jobExecutionId;
}
public void setJobExecutionId(String jobExecutionId) {
this.jobExecutionId = jobExecutionId;
}
}
和存储库定义:
public interface JobsRepository extends JpaRepository {
@Query(value = "SELECT JOB_INSTANCE_ID, JOB_EXECUTION_ID, JOB_NAME, JOB_TYPE, START_TIME, END_TIME, STATUS, USERNAME FROM JOBS_VW", nativeQuery = true)
List getAll();
@Query(value = "SELECT JOB_INSTANCE_ID, JOB_EXECUTION_ID, JOB_NAME, JOB_TYPE, START_TIME, END_TIME, STATUS, USERNAME FROM JOBS_VW WHERE JOB_INSTANCE_ID=?1", nativeQuery = true)
List getJobsByInstanceId(String instanceId);
}