>Java >java지도 시간 >Hibernate의 @Formula 주석은 JPA에서 계산된 속성을 어떻게 매핑할 수 있습니까?

Hibernate의 @Formula 주석은 JPA에서 계산된 속성을 어떻게 매핑할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-17 17:02:02276검색

How Can Hibernate's @Formula Annotation Map Calculated Properties in JPA?

Hibernate의 @Formula 주석을 사용하여 JPA의 계산된 속성 매핑

JPA(Java Persistence API) 엔터티에서 계산된 속성은 다른 항목에서 파생된 값을 나타냅니다. 엔터티 속성 또는 데이터베이스 계산. 이러한 속성은 데이터베이스 열에 매핑되지 않지만 요청 시 검색하거나 업데이트할 수 있습니다. Hibernate는 JPA 엔터티 내에서 계산된 속성을 쉽게 매핑할 수 있도록 @Formula 주석을 제공합니다.

@Formula 주석을 사용하려면 엔터티 내에서 계산된 속성에 이를 적용하기만 하면 됩니다. 주석은 계산 논리를 지정하는 SQL 조각을 허용합니다. 예를 들어, 데이터베이스 COUNT() 함수를 사용하여 계산해야 하는 "childCount" 속성이 있는 경우 다음과 같이 정의할 수 있습니다.

@Formula("COUNT(SELECT 1 FROM Child WHERE Child.parentId = id)")
private int childCount;

이 예에서 SQL 조각 COUNT(SELECT 1 FROM Child WHERE Child.parentId = id)는 현재 엔터티와 연결된 하위 엔터티 수를 계산합니다.

@Formula 주석은 더 복잡한 쿼리를 지원하여 유연성을 제공합니다. 예를 들어 고객과 관련된 최소 주문 생성 날짜를 계산할 수 있습니다.

@Formula("(SELECT MIN(o.creation_date) FROM Orders o WHERE o.customer_id = id)")
private Date firstOrderDate;

@Formula 주석은 Hibernate 전용 확장이라는 점에 유의하는 것이 중요합니다. 계산된 속성을 효율적으로 매핑할 수 있지만 Hibernate를 JPA 지속성 공급자로 사용하는 경우에만 사용할 수 있습니다.

주제에 대해 자세히 알아보려면 다음 리소스를 고려하세요.

  • [Hibernate 파생 속성 - 성능 및 이식성](https://vladmihalcea.com/hibernate-derived-properties-performance-and-portability/)
  • [Hibernate 핵심 문서 - 열 및 공식 요소](https://docs.jboss.org/hibernate/core/5.5/manual/en-US/html_single/#d0e2491)
  • [Hibernate 주석 문서 - 수식](https://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#d0e3346)

위 내용은 Hibernate의 @Formula 주석은 JPA에서 계산된 속성을 어떻게 매핑할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.