> Java > java지도 시간 > HQL 또는 Criteria API를 사용하지 않고 JPA 및 Hibernate에서 계산된 속성을 매핑하려면 어떻게 해야 합니까?

HQL 또는 Criteria API를 사용하지 않고 JPA 및 Hibernate에서 계산된 속성을 매핑하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-12-03 01:44:10
원래의
487명이 탐색했습니다.

How Can I Map Calculated Properties in JPA and Hibernate Without Using HQL or Criteria API?

JPA 및 Hibernate를 사용하여 계산된 속성 매핑

배경:

Java가 있다고 가정합니다. 데이터베이스 열에 직접 매핑되지 않은 속성이 있는 Bean입니다. 대신 COUNT()와 같은 작업을 사용하여 데이터베이스에서 계산하기를 원합니다. HQL이나 Criteria API를 사용하지 않고 이 속성을 매핑하는 방법을 찾고 있습니다.

Hibernate의 @Formula를 사용하는 솔루션:

JPA는 파생 속성을 직접 지원하지 않습니다. 그러나 Hibernate는 @Formula 주석을 솔루션으로 제공합니다. 이 주석을 사용하면 SQL 조각 또는 복잡한 쿼리를 포함할 수 있는 속성에 대한 수식을 지정할 수 있습니다.

@Formula("COUNT(childColumns)")
private int childCount;
로그인 후 복사

수식 예:

  • 계산 중 가격 마크업:
@Formula("PRICE*1.155")
private float finalPrice;
로그인 후 복사
  • 고객의 최소 주문 날짜 찾기:
@Formula("(select min(o.creation_date) from Orders o where o.customer_id = id)")
private Date firstOrderDate;
로그인 후 복사

@Formula의 이점:

  • 추가 없이 계산된 속성을 매핑할 수 있습니다. HQL 또는 Criteria API 쿼리.
  • 불필요한 데이터베이스 왕복을 방지하여 성능을 향상시킬 수 있습니다.
  • 다양한 데이터베이스 플랫폼 간 이식성을 지원합니다.

추가 리소스 :

  • [Hibernate 파생 속성 - 성능 및 이식성](https://thoughts-on-java.org/hibernate-derived-properties-performance-and-portability/)
  • [Formula에 대한 Hibernate 핵심 문서 요소](https://docs.jboss.org/hibernate/core/4.3/manual/en-US/html/ch05.html#formula-support)
  • [Hibernate Annotations 문서 수식](https://docs.jboss.org/hibernate/annotations/3.5/reference/en/html/entity.html#d0e735)

위 내용은 HQL 또는 Criteria API를 사용하지 않고 JPA 및 Hibernate에서 계산된 속성을 매핑하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿