リレーション名、カスタムオブジェクトおよびカスタム項目について
カスタムオブジェクトは、リレーションクエリに含めることができます。Salesforce では、カスタムオブジェクト名と同じ名前の標準オブジェクトが現在または将来に利用可能である場合でも、カスタムオブジェクト名、カスタム項目名、およびそれらと関連付けられたリレーション名が常に一意であることが保証されるようになっています。オブジェクト、項目、およびリレーション名を使用するリレーションをクエリでトラバースする場合、リレーションクエリが一意であることが重要です。
このトピックでは、どのようにカスタムオブジェクトとカスタム項目のリレーション名が作成され、使用されるかを説明します。
Salesforce ユーザインターフェース内で新しいカスタムリレーションを作成する場合、オブジェクト名の (リレーションクエリのために使用する) 複数のバージョンを指定するよう要求されます。
![新規カスタムリレーションウィザードのステップ 3。[項目表示ラベル] 項目が「Mother of Child」に、[子リレーション名] 項目が「Daughters」に設定されます。](https://developer.salesforce.com/docs/resources/img/ja-jp/232.0?doc_id=images%2Fcustom_object1.gif&folder=soql_sosl)
[子リレーション名] (親-子) が子オブジェクト名の複数形になります (この場合は、Daughters)。
リレーションが作成されると、作成したカスタム項目の名前に __c (アンダースコア 2 つの後に c) が追加された [API 参照名] 参照名が割り当てられます。
![[Mother of Child] カスタム項目の詳細ページ](https://developer.salesforce.com/docs/resources/img/ja-jp/232.0?doc_id=images%2Fcustom_object2.gif&folder=soql_sosl)
この項目を API 経由で参照する場合には、この特殊な形式の名前を使用する必要があります。これによって、Salesforce がカスタム項目と同名の標準オブジェクトを作成可能な場合に、あいまいさを防止できます。同様のプロセスは、カスタムオブジェクトにもあてはまります。カスタムオブジェクトが作成される場合、[API 名] 参照名 (__c が追加されたオブジェクト名) が割り当てられ、それを使用する必要があります。
クエリ内のリレーション名を使用する場合には、__c ではなくリレーション名を使用する必要があります。代わりに、__r (アンダースコア 2 つの後に r) を追加してください。
次に例を示します。
- 子-親リレーションを使用する場合には、次のようにドット表記法を使用できます。
1SELECT Id, FirstName__c, Mother_of_Child__r.FirstName__c 2FROM Daughter__c 3WHERE Mother_of_Child__r.LastName__c LIKE 'C%'このクエリは、親 (Mother) オブジェクトの姓が「C」から始まる場合、子 (Daughter) オブジェクトの ID、名と、親 (Mother) オブジェクトの名の値を返します。
- 親-子リレーションクエリは、次のようにドット表記法を使用しません。
1SELECT LastName__c, 2 ( 3 SELECT LastName__c 4 FROM Daughters__r 5 ) 6FROM Mother__c上の例では、すべての親 (Mother) オブジェクトの姓と子 (Daughter) オブジェクトの姓を返します。