この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Newer Version Available

This content describes an older version of this product. View Latest

SOQL クエリの多態的なリレーションの処理

多態的なリレーションは、参照されるオブジェクトに複数の異なる種別を使用できるオブジェクト間のリレーションです。たとえば、Event の What リレーション項目には Account、Campaign、Opportunity のいずれかを使用できます。

Apex で多態的なリレーションの SOQL クエリを使用する方法についての説明を次に示します。多態的なリレーションについてのより一般的な情報は、『Force.com SOQL および SOSL リファレンス』の多態的なキーとリレーションについてを参照してください。

Apex で多態的な項目を参照する SOQL クエリを使用して、多態的な項目によって参照されるオブジェクト種別に依存する結果を取得できます。1 つのアプローチとして、Type 修飾子を使用して結果を絞り込むという方法があります。次の例では、What 項目を使用して Account または Opportunity に関連する Event をクエリします。
別のアプローチとして、SOQLSELECT ステートメントで TYPEOF 句を使用する方法があります。この例でも、What 項目を使用して Account または Opportunity に関連する Event をクエリします。

TYPEOF は、現在 SOQL 多態性機能の一部の開発者プレビューとして利用可能です。組織での TYPEOF の有効化については、Salesforce にお問い合わせください。

メモ

これらのクエリは、リレーション項目が目的のオブジェクト種別を参照する sObject のリストを返します。
多態的なリレーションで参照されるオブジェクトにアクセスする必要がある場合は、オブジェクト種別を判断するために instanceof キーワードを使用できます。次の例では、instanceof を使用して、Account または Opportunity が Event に関連しているかどうかを判断します。
別のメソッドに渡す前に、クエリが返す参照される sObject を適切な種別の変数に割り当てる必要があります。次の例では、TYPEOF 句を含む SOQL クエリを使用して Merchandise__c カスタムオブジェクトの User または Group 所有者をクエリし、instanceof を使用して所有者の種別を判断してから、ユーティリティメソッドに渡す前に所有者オブジェクトを User または Group の種別の変数に割り当てます。