どのようにJPA NamedQuery注釈を入れることでエンティティクラスを決めるのですか?

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

  •  18-09-2019
  •  | 
  •  

質問

私が顧客持って言う - 。CustomerOrderが、各注文の合計値を保持すると1対多の双方向の関係をCustomerOrderが

私は特定の顧客のためにすべての注文の合計値を検索するクエリを持っていた場合:

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

これは注釈が付けられたエンティティクラスに重要ですか?なぜあなたは、どちらか一方でそれを置くでしょうか?

役に立ちましたか?

解決

  

これは注釈が付けられたエンティティクラスに重要ですか?

あなたはそれを呼び出すためにname@NamedQueryを使用すると、

技術的な観点から、それは問題ではありません。

  

なぜあなたは、どちらか一方でそれを置くでしょうか?

しかし、ビューの「論理的」観点から、「自然」であるが、間違いなく、メンテナンスを容易にします属し@NamedQueryを置きます。クエリが のですので、あなたの例では、私はCustomerOrderを見つけることについてCustomerOrderエンティティにクエリをかけることになり、これは私がそれを見ていた場合、私はそれを見つけることを期待したいだけの場所です。

他のヒント

これは問題ではありません。 一般的な原則は、それが論理的に属しているそれをどこに置くことです。あなたのケースでは - それは、より良いCustomerOrderになると思います。

persistence.xmlで宣言されるべきXMLマッピングファイルでそれらを置きます。この偉大なリンクを参照してください: arjan -tijms.omnifaces.org/2010/09/where-to-put-named-queries-in-jpaする

クエリの多くは、「自然に」エンティティに属していない(と、さらにあなたがそれらをそこに置けば、あなたは新しいクエリを必要とするたびに、エンティティコードを変更する必要があり)ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top