如何在Hibernate中自动将普通列的值设置为主列的值

时间:2012-01-27 05:49:52

标签: java hibernate orm

我有一个表,有两列,一列是“序列号”,另一列是“屏幕号” 如果用户正在给予筛选号码。那么它将保存那个筛选号,如果用户没有给予筛选号。那么系统将为筛选号生成相同的值。作为“序列号”值

对于“serial no”,我正在使用@Id @GeneratedValue(strategy = GenerationType.IDENTITY)注释 如果用户没有给予“筛选否”,我怎么能将“序列号”的相同值初始化为“筛选否”。

请帮忙!! Thankx

2 个答案:

答案 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的值已经设置为止。