【发布时间】:2018-10-30 15:01:58
【问题描述】:
我有一个表 Job_Applicants,其中有一个名为 review 的列,其中包含一个布尔值,还有一个状态列,其中包含一个字符串值
当做如下查询时
@Query("select a.applicant, a.reviewed, a.status from JobApplicants a where
a.job.id = ?1")
List<JobApplicants> getOnlyApplicants(UUID jobId);
我得到以下信息:
"jobApplicantList": {
"bca4ed5c-b81a-420d-8b8b-9130d815d5f1":[
{
"id": "109ca778-8526-40c6-a9dd-1f4e6ef2fef7",
"createdDate": "2018-05-20T11:22:50.607",
"lastModifiedDate": "2018-05-20T11:22:50.607",
"address": null,
"firstName": "Xxxx",
"lastName": "Xxx",
"email": "xxxx@gmail.com",
"phoneNumber": "xxxxxx",
"resume": "xxx.pdf",
"resumeUrl": "https://",
"coverLetter": "xxx.pdf",
"coverLetterUrl": "https:/",
"website": "sdfasdfasdf"
},
null,
null
],
}
我添加的所有 XXX 用于删除个人信息。
但是您可以看到,reviewed 和 status 列没有列名,有没有办法可以调整我的查询以包含列名?
所以它最后不读“null,null”?
我想让它读为“reviewed”:null,“status”:null
如果有帮助,这是我的实体
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.UUID;
@Entity
@Table(name = "JOB_APPLICANTS")
public class JobApplicants {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@org.hibernate.annotations.Type(type="org.hibernate.type.PostgresUUIDType")
private UUID id;
private String status;
private Boolean reviewed;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "APPLICANT_ID")
private Applicant applicant;
@ManyToOne()
@JoinColumn(name = "JOB_ID")
private Job job;
@CreationTimestamp
private LocalDateTime appliedOnDate;
@UpdateTimestamp
private LocalDateTime lastModifiedDate;
public JobApplicants(){}
public UUID getId() {
return id;
}
public void setId(UUID id) {
this.id = id;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public Boolean getReviewed() {
return reviewed;
}
public void setReviewed(Boolean reviewed) {
this.reviewed = reviewed;
}
public Applicant getApplicant() {
return applicant;
}
public void setApplicant(Applicant applicant) {
this.applicant = applicant;
}
public Job getJob() {
return job;
}
public void setJob(Job job) {
this.job = job;
}
public LocalDateTime getAppliedOnDate() {
return appliedOnDate;
}
public void setAppliedOnDate(LocalDateTime appliedOnDate) {
this.appliedOnDate = appliedOnDate;
}
public LocalDateTime getLastModifiedDate() {
return lastModifiedDate;
}
public void setLastModifiedDate(LocalDateTime lastModifiedDate) {
this.lastModifiedDate = lastModifiedDate;
}
@Override
public String toString() {
return "JobApplicants{" +
"id=" + id +
", status='" + status + '\'' +
", reviewed=" + reviewed +
", applicant=" + applicant +
", job=" + job +
", appliedOnDate=" + appliedOnDate +
", lastModifiedDate=" + lastModifiedDate +
'}';
}
}
【问题讨论】:
-
但正如您所见,review 和 status 列带有列名, - 你是什么意思?
-
在查询的末尾只有“null,null”我希望它读取“status:null,reviewed:null”以便能够在前端正确显示。 @ScaryWombat
-
@SpaceOso 我认为你的意思是“出来没有列名”
-
提示:
"address": null,工作正常,因此请检查该代码以了解它是如何完成的 -
@UsamaAmjad 你是对的,我更新了我的帖子。
标签: java sql postgresql spring-boot jpa