簡體   English   中英

在所有設置員調用添加額外字段后得到回調?

[英]Getting Callback after all setters called to add extra fields?

我想重寫一個setter,以便可以對數據執行某些功能,以便為我的實體返回一個計算列。 該函數取決於幾列(例如,COL1,COL2等),因此我無法真正攔截任何特定的設置器,因為可能尚未填充其他值。 休眠是否提供某種“ finish()”方法,可以在為實體設置值時調用一次?

 @Override @Column(name="COL1") public String getCol1() { return this.col1; } @Override public void setCol1(String value) { super.setCol1(value); genMagicValue(); } public String getMagicValue() { return this.magicValue(); } 

除了休眠提供的功能之外,是否不能懶惰地初始化magicValue以便在第一次調用getMagicValue且隨后對getMagicValue的后續調用僅返回計算值時進行計算?

我不明白您的問題,可能永遠不會調用setCol1(並保留其默認值)。 此外,沒有人阻止您使用不同的值兩次調用它。

也許您正在尋找的模式是:

  boolean magicDone=false;
  public String getMagicValue() {
       if (!magicDone){
           magicDone=true;
           genMagicValue();
       }
       return this.magicValue();
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM