1

TriggerのContactオブジェクトとAccountオブジェクトに関連するルックアップフィールドを使用する必要があります。連絡先にルックアップフィールドAccount__cがありますが、次のように書くと、その連絡先に関連するアカウントを取得できません。

Map <Id,Account> acts = new Map<Id,Account>([Select Id,Name from Account where Id:=contact.Account__c]);

関連するすべてのアカウントを実行に移す必要がありますが、機能しません。

関連するアカウントを取得するにはどうすればよいですか?

4

1 に答える 1

0

これが連絡先とアカウントの間に関係を作成する必要がない特別な場合でない限り、すでに標準的なものがあります。あなたはそれをそのように問うことができます

try {
    Account parent = [SELECT Id, Name FROM Account WHERE Id = :contact.AccountId];
} catch(QueryException e) {
    //list has no rows for assignment
    //means the account with Id could not be found
}

API名の詳細については、wsdlを参照してください。

余談ですが、このクエリの結果をマップに渡す必要はありません。WHERE句でId =:idValueを使用すると、正確に0または1の結果が得られることが保証されます。結果が0の場合、QueryExceptionがスローされます。

于 2012-08-03T21:31:21.740 に答える