[英]Calculated Column In Hibernate In same Entity
我有實體類Student,因為我具有roll_no
, student_name
,在下面marks
我的實體類”列:
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "student")
public class Student{
@Id
private int roll_no;
private String student_name;
private int marks;
public int getRoll_no() {
return roll_no;
}
public void setRoll_no(int levelid) {
this.roll_no = roll_no;
}
public String getStudent_name() {
return student_name;
}
public void setStudent_name(String student_name) {
this.student_name = student_name;
}
public int getMarks() {
return marks;
}
public void setMarks(int marks) {
this.marks= marks;
}
}
我想執行一個NamedQuery Like:
select *, (case when marks > 35 then 'Pass' else 'Fail' end) as final_result from student
如何在實體類中添加計算出的新列final_result
。 我不想將其添加到數據庫的實際表中
您無需打擾數據庫,做一個吸氣劑:
public String getFinalResult() {
return this.marks > 35 ? "Pass" : "Fail";
}
編輯:
如果您需要finalResult作為json解析器的字段,請嘗試以下操作:
@Transient
@JsonProperty(access = Access.READ_ONLY)
private String finalResult;
private int marks;
public void setMarks(int marks) {
this.marks = marks;
setFinalResult();
}
private String getFinalResult() {
return this.finalResult;
}
@PostLoad
private void setFinalResult() {
this.finalResult = this.marks > 35 ? "Pass" : "Fail";
}
@Transient
批注防止字段持久存在,並且@PostLoad
確保在從jpa加載Entity之后設置了該字段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.