検索

11.4.8. 限定パス式について

download PDF
コレクション値 (collection-valued) のアソシエーションは、実際にはそのコレクションのを参照すると前項で説明しました。コレクションのタイプを基に、明示的な限定式のセットも使用可能です。
表11.9 限定パス式
説明
VALUE
コレクション値を参照します。限定子を指定しないことと同じです。目的を明示的に表す場合に便利です。コレクション値 (collection-valued) の参照のすべてのタイプに対して有効です。
INDEX
HQL ルールによると、マップキーまたはリストの場所 (OrderColumn の値) へ参照するよう javax.persistence.OrderColumn を指定するマップとリストに対して有効です。JPQL では List の使用に対して確保され、MAP に対して KEY を追加します。JPA プロバイダーの移植性に関心があるアプリケーションは、この違いに注意する必要があります。
KEY
マップに対してのみ有効です。マップのキーを参照します。キー自体がエンティティーである場合、更にナビゲートすることが可能です。
ENTRY
マップに対してのみ有効です。マップの論理 java.util.Map.Entry タプル (キーと値の組み合わせ) を参照します。ENTRY は終端パスとしてのみ有効で、select 節のみで有効になります。

例11.9 限定コレクション参照の例

// Product.images is a Map<String,String> : key = a name, value = file path

// select all the image file paths (the map value) for Product#123
select i
from Product p
    join p.images i
where p.id = 123

// same as above
select value(i)
from Product p
    join p.images i
where p.id = 123

// select all the image names (the map key) for Product#123
select key(i)
from Product p
    join p.images i
where p.id = 123

// select all the image names and file paths (the 'Map.Entry') for Product#123
select entry(i)
from Product p
    join p.images i
where p.id = 123

// total the value of the initial line items for all orders for a customer
select sum( li.amount )
from Customer c
        join c.orders o
        join o.lineItems li
where c.id = 123
  and index(li) = 1

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.