JPA라는 이름의 Query 주석을 넣을 수있는 엔터티 클래스를 어떻게 결정합니까?

StackOverflow https://stackoverflow.com/questions/2009779

  •  18-09-2019
  •  | 
  •  

문제

고객이 있다고 말합니다-고객 주문은 각 주문의 총 가치를 보유한 고객 주문과 일대일의 양방향 관계를 가지고 있습니다.

특정 고객에 대한 모든 주문의 총 가치를 찾을 수있는 쿼리가있는 경우 :

select SUM(o.orderValue) from CustomerOrder o where o.customer = :customer

어떤 엔티티 클래스가 주석이 달린 것이 중요합니까? 왜 하나 또는 다른 사람에 넣을까요?

도움이 되었습니까?

해결책

어떤 엔티티 클래스가 주석이 달린 것이 중요합니까?

기술적 인 관점에서 볼 때 사용하므로 중요하지 않습니다. name a @NamedQuery 그것을 부르기 위해.

왜 하나 또는 다른 사람에 넣을까요?

그러나 "논리적"관점에서 @NamedQuery "자연스럽게"속의 위치는 확실히 유지 보수를 완화시킵니다. 당신의 예에서는 쿼리를 CustomerOrder 쿼리이기 때문에 엔티티 ~이다 찾기에 대해 CustomerOrder, 이것은 내가 그것을 찾아야한다면 그것을 찾을 것으로 기대하는 곳입니다.

다른 팁

중요하지 않습니다. 일반적인 원칙은 논리적으로 속하는 곳에 두는 것입니다. 당신의 경우 - 더 나을 것입니다 CustomerOrder

persistence.xml에서 선언 해야하는 XML 매핑 파일에 넣으십시오. 이 위대한 링크를 참조하십시오. arjan-tijms.omnifaces.org/2010/09/where-to-fut-named-queries-in-jpa

많은 쿼리가 '자연스럽게'엔티티에 속하지 않습니다 (또한 새 쿼리가 필요할 때마다 엔티티 코드를 넣으면 엔티티 코드를 수정해야합니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top