Прежде всего, учитывая ваше отображение, движок JPA вообще не должен вызывать сеттеры, потому что вы выбрали доступ к полю, поместив аннотации в поле.
Во-вторых, поле total
отсутствуетв коде.
В-третьих, это поле вообще не должно существовать, поскольку оно может быть вычислено из двух других полей.Просто позвольте другим классам вызывать calcTotal()
для доступа к его значению.И переименуйте этот метод getTotal()
.
О, и поля должны быть частными, а не общедоступными.
Если вы действительно хотите сохранить результат для повторного использования, вычислите его лениво и сбросьте его на ноль, когда один из операндовизменено:
public Long getTotal() {
if (total == null) {
total = val1 + val2;
}
return total;
}
public void setVal1(Long val1) {
this.val1 = val1;
this.total = null;
}
public void setVal2(Long val2) {
this.val2 = val2;
this.total = null;
}