0

この初心者プログラマーを助けてください。私はJPAを使用してきましたが、結合ステートメントを使用したロジックに気になるものがあるようです。

たとえば、 という名前のエンティティがPersonあり、フィールドnameは 、agegenderです。そして、たとえばクエリで、

select p from Person p join p.gender g

注:これは、私が混乱している理由のほんの一例です。

問題は、なぜあなたjoin p(人) とp.gender? ポイントは何ですか?それはどのような結果をもたらすことができますか?

4

1 に答える 1

1

ポイントは、多値関係を結合することです。に参加する意味はありませんp.gender。私は、p.gender属性または単一の値の関係 (人は 1 つの性別のみを持つことができます) であることを期待しています。

しかし、多値属性で結合した場合Collection<Order> orders(人は複数の注文を持つことができます)、特定の注文を持つ人を検索できます。

select p from Person p join p.orders o where o.price > 12000

このクエリは、価格が 12000 を超える注文があるすべての人を検索します。 join なしでは実行できません。

select p from Person p where p.orders.price > 12000

ordersは多値であり、このようにトラバースできないため、これは機能しません。join (またはサブクエリなどの何か)を使用する必要があります。

于 2013-06-28T09:47:38.183 に答える