我正在尝试为实体属性设置默认值,这样如果数据库中的值为null,它将显示默认值。
我的实体关系如下
@Entity
@Table(name = "EMP")
public class Emp implements Serializable {
@Id
@Column(name = "empno", nullable = false)
private String empNo;
@JsonBackReference("proj")
@ManyToOne
@JoinColumn(name = "PROJECT_ID", referencedColumnName = "PROJECT_ID")
private Project project;
public Project getProject() {
return Project;
}
public void setProject(Project project) {
this.project = project;
// this.project = project == null ? <notSure> : project; // not sure what to give default value
}
@Entity
@Table(name = "PROJECTS")
public class Project implements Serializable {
@Id
@Column(name="PROJECT_ID", nullable = false)
private Long projectId = 0L; // default value
@Column(name = "PROJECT_NAME" , nullable = true)
private String projectName = "-"; // default value
@JsonManagedReference("proj")
@OneToMany(mappedBy = "project")
private List<Emp> empList;
public Long getProjectId() {
return projectId;
}
public void setProjectId(Long projectId) {
// this.projectId = projectId;
this.projectId = projectId == null ? 0L : projectId;
}
public String ProjectName() {
return projectName;
}
我不确定该
的默认值是什么this.project = project == null ? <notSure> : project;
虽然为projectId
和projectName
设置了默认值,但在执行时,我仍然将项目属性视为null。可能是什么原因以及如何设置项目属性的默认值?
生成的值
[{"empNo":"12690","empName":"SCOTT","project":null}]
empNo和empName存在值,但是对于project.projectId和projectName,数据库表中存在值,因此我设置了默认值。
根据projectId
和projectName
[{"empNo":"12690","empName":"SCOTT","project":{"projectId":0,"projectName":"-"}}]