0
私はHibernate 4.0.1のJPAを使用しています。私は関係がManyToOneの2つのテーブルを持っています。JPAとDistinctの2つの列でSUMのような集計関数を実行するには?
私は会社に属し、特定の状態(実行中/終了/ ...)を持つ契約のすべての価値を合計する必要があります。このような
私のSQLは:
SELECT SUM(contract.totalAmount) FROM Contract contract, CompanyEntity company
WHERE contract.state LIKE :contractState AND contract.company.id = :companyId"
しかし、それは何らかの形で複製し、合計を返します。 SUM照会を書くと、postが読まれます。
私の質問は、JPA NamedQueryでDISTINCTを使用してSUMのような集計関数を作成できますか?
おかげで、すべて、
(と仮定すると、同社はJoinTable注釈との契約クラス内の変数名です)。 「企業」エンティティにEXPLICIT _JOIN_を使用していない理由は何ですか? –
クエリから 'CompanyEntity company'を削除します。この不要なエンティティをfrom句に追加することによって、クロス結合を行っています。 –
あなたのコメントの後に@NeilStocktonに感謝します。ちょうどCompanyEntityの部分を削除してから、重複したレコードはありません:) –