Как Hibernate распознает изменение объекта?Это проверка поля напрямую или использование соответствующего метода Геттера?
Скажем, у меня есть столбец цен в базе данных.При определенных условиях цена конвертируется.Могу ли я сделать это в методе Getter и вернуть преобразованное значение без изменения значения этого столбца, если я сохраню этот объект?Изменение, внесенное установщиком этого свойства, должно изменить столбец.
Каково поведение по умолчанию?Можно ли это изменить?Это хорошая практика или ее следует избегать с помощью метода "getConvertedPrice", потому что поведение может измениться с другой конфигурацией / версией, которая приводит к труднодоступным ошибкам?
Редактировать: Пример запросакод ...
@Entity
@Table(name="items")
public class Item {
/*...*/
@Column(name="item_price")
private double price;
@Column(name="item_currency")
// More enum mapping ...
private Currency currency;
public void setPrice(double price) {
this.price = price;
}
public double getPrice() {
if(getCurrency()!=Currency.US_DOLLAR) {
return price * CurrencyService.getCurrentRate(getCurrency());
} else {
return price;
}
}
/*..*/
}