我有一个表,有两列,一列是“序列号”,另一列是“屏幕号” 如果用户正在给予筛选号码。那么它将保存那个筛选号,如果用户没有给予筛选号。那么系统将为筛选号生成相同的值。作为“序列号”值
对于“serial no”,我正在使用@Id @GeneratedValue(strategy = GenerationType.IDENTITY)注释 如果用户没有给予“筛选否”,我怎么能将“序列号”的相同值初始化为“筛选否”。
请帮忙!! Thankx
答案 0 :(得分:0)
在save / persist方法中,只检查“筛选号”是否为空,然后初始化为序列号,如下所示:
if(this.screeningNo == null){
this.screeningNo = this.serialNo;
}
<强>(OR)强>
在属性声明级别初始化:
private int screeningNo = this.serialNo;
在这种情况下,如果调用screeningNo
的setter,那么该值将被覆盖。
答案 1 :(得分:0)
你可以用setter和getter做一件事。在screeningNo
的getter方法中,您可以检查null并从serialNo
设置值。像
public <type> getScreeningNo(){
if(this.screeningNo == null){
this.screeningNo = getSerialNo();
}
}
因为hibernate会在将screeningNo
的值保存到DB时调用getter,直到serialNo
的值已经设置为止。