2016-04-06 6 views
0

私はJPAを初めて使っているので、潜在的に愚かな質問のために私をあまりにも蹴ってはいけませんが、Googleは私に答えを与えていませんでした。JPQLで複数のManyToOne関連エンティティから特定のフィールド値を取得するにはどうすればよいですか?

私はPostreSQLデータベースを使用しています。私は、エンティティOneとエンティティTwo(List two)との関係がManyToOneであり、エンティティTwoはエンティティThree(List three)との関係がManyToOneであるとします。

3つのエンティティはすべて、独自のIDフィールドを持っています。

したがって、JPQLと私は次のクエリを実行しようとしています: "SELECT o.two.ID, o.two.three.ID FROM One o WHERE o.ID = 1 GROUP BY(o.two.ID, o.two.three.ID)"

しかし、私が受け取るすべてがo.two.IDGROUP BYで指定する必要がありますが、それは既に存在だとpg_logのレコードがありInternal Server ErrorSQLGrammarExceptionSQLState: 42803, Character code: 8.

です。

+0

私はあなたがグループの括弧を必要としないとは確信していません。試してみる価値があるかもしれません。そして、GROUP BYの中でSELECTに 'o.two.three.ID'、そして' o.three.ID'を持っていることに気付きました。これらは一致する必要があります。 –

+0

あなたはグループなしで試しましたか? – Desorder

+0

@Narain Mittalはい、グループ括弧なしで試しましたが、何も変わりませんでした。そして、申し訳ありませんが、3桁のスペルミスがあるように見えます。質問を書いているうちに、それは3つです。私は今問題を解決します。 – htshame

答えて

0

私はついに解決策を見つけました!

私は必要なすべては、エンティティTwoOneToManyがエンティティOneに - 関連しなければならないと実体ThreeがエンティティTwoOneToMany - 関連しなければならないので、私のエンティティでOneToManyバック関係を追加することでした。

ありがとう、皆さん!

+0

ああ、良い古い逆の関係。私たちはそれが質問されていることを知っているので、正しい答えを記入してください:) – Desorder

関連する問題