1
私はオブジェクト 'A'の後挿入トリガーのトリガーハンドラークラスを記述しています。ハンドラークラスの関数にtrigger.newを渡した後、その親オブジェクトフィールドはすべてnullです。トリガー自体からIDを渡さずに、親オブジェクトフィールドにアクセスするにはどうすればよいですか?ここでトリガーハンドラークラスの親オブジェクトフィールドへのアクセス
は、サンプル・トリガーである::
if(trigger.isInsert && Trigger.isAfter){
TriggerHandler.handleAfterInsert(trigger.new);
}
ここハンドラクラス::
public class DedupeTriggerHandler{
public static void handleAfterInsert(List<A__c >AList) {
// accessing parent objects field here
}
}
は、私は、子供がfields.Youがquery.Usually我々が使用して親オブジェクトのフィールドにアクセスすることができ、内側SOQLを使用して、子オブジェクトのフィールドにアクセスできるオブジェクトではなく、親オブジェクトのフィールドにアクセスしたい「」(ドット)operator.Butこの場合は動作していません! –
私はまだ間違っているかもしれませんが、その場合(私の経験では)、親IDのマップを作成するだけです。したがって、連絡先を扱っていてAccount sObjectフィールドを取得したい場合は、trigger.newをループしてAccountIdを取得し、マップに追加してください。次に、必要なアカウントフィールドを取得するためにSOQLを実行することができます([Select ID、Name、Owner from Account where ID in:AccountIDs])。問題は、trigger.new、trigger.oldmapなどで、データベースからSOQLを実行するまで、親子のsObjectsに直接アクセスできるとは思いません。 – Steve
あなたはデータベースからSOQLを実行するまで、trigger.new、trigger.oldmapを使用して右に ''親または子のsObjectsに直接アクセスできません。 –