이 도움말에 설명 된대로 세 가지 옵션이 있습니다.
@Transient
방법을 사용하여 속성을 계산하거나
@PostLoad
엔티티 리스너 를 사용할 수도 있습니다.
- 또는 Hibernate 특정
@Formula
주석을 사용할 수 있습니다.
최대 절전 모드를 사용할 수 있지만 @Formula을 JPA와 함께, 당신은 사용할 수 있습니다 @PostLoad의 채우는 콜백을 과도 약간의 계산 결과와 속성을 :
@Column(name = "price")
private Double price;
@Column(name = "tax_percentage")
private Double taxes;
@Transient
private Double priceWithTaxes;
@PostLoad
private void onLoad() {
this.priceWithTaxes = price * taxes;
}
더 복잡한 쿼리의 경우이 기사@Formula
에서 설명한대로 Hibernate를 사용할 수 있습니다 .
@Formula(
"round(" +
" (interestRate::numeric / 100) * " +
" cents * " +
" date_part('month', age(now(), createdOn)" +
") " +
"/ 12) " +
"/ 100::numeric")
private double interestDollars;