Получение обратного вызова после вызова всех сеттеров для добавления дополнительных полей? - PullRequest
1 голос
/ 03 сентября 2011

Я хотел бы переопределить установщик, чтобы я мог выполнять некоторую функцию над данными, чтобы я мог вернуть вычисленный столбец для моей сущности.Функция зависит от нескольких столбцов (например, COL1, COL2, ...), поэтому я не могу перехватить какой-либо конкретный установщик, потому что другие значения могут быть еще не заполнены.Предоставляет ли hibernate какой-то метод «finish ()», который можно вызвать один раз, когда для Entity установлены значения?</p> <pre> @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(); } </pre> <p>

Ответы [ 2 ]

0 голосов
/ 03 сентября 2011

Я не понимаю твой вопрос, setCol1 может никогда не вызываться (и оставить его со значением по умолчанию). Кроме того, никто не мешает вам дважды вызывать его с разными значениями.

возможно, шаблон, который вы ищете:

  boolean magicDone=false;
  public String getMagicValue() {
       if (!magicDone){
           magicDone=true;
           genMagicValue();
       }
       return this.magicValue();
  }
0 голосов
/ 03 сентября 2011

Помимо того, что предоставляет hibernate, нельзя ли лениво инициализировать magicValue, чтобы вычисление происходило при первом вызове getMagicValue, а последующие вызовы getMagicValue просто возвращают вычисленное значение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...