MENU
Abo
某SIer勤務。
ITエンジニアです。
日々の学びをつらつらと書いています。
保有資格:
Salesforce認定アドミニストレーター  
Salesforce認定Platformデベロッパー
Salesforce認定上級Platformデベロッパー
カテゴリー
アーカイブ

【Apex】Map<Id, List<Sobject>>を使ってみた【Salesforce】

さてさてさて、今回は、Map<Id, List<Sobject>>の形を使用してみました。

キーにはIdを指定して、バリューにはリストですね。

この記事では例として、取引先のIdをキーにして、取引先責任者のリストをバリューに設定してみます。

書き方はこんな感じ↓

//Map宣言
Map<Id, List<Contact>> accConMap = new Map<Id, List<Contact>>();
for(Contact con : [select Id, AccountId from Contact]){
                
    Id accId = con.AccountId;
    //Mapのキーにfor文で回してきた取引先Idがすでに存在しているか確認    
    if(accConMap.containskey(accId)){
        //存在している場合、Listに取引先責任者を追加
        accConMap.get(accId).add(con);
    }else{
        //存在していない場合、取引先Idと取引先責任者をMapに格納
        accConMap.put(accId, new List<Contact>());
        accConMap.get(accId).add(con);
    }   
}

値を取り出す時は、取引先のIdを指定してあげるだけで、紐づく取引先責任者のレコードがすべてgetできるの非常に使い勝手がいいですね。

親子関係のオブジェクトで、親レコードをキーにして、それに紐づく複数の子レコードをまとめて格納しておきたい時なんかに力を発揮してくれそうです。

これは今後も多様していく気がビシビシしています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

某SIer勤務。
Salesforceエンジニアです。
日々の学びをつらつらと書いています。
Certified Administrator
Certified Platform DeveloperⅠ
Certified Platform DeveloperⅡ
Certified Sales Cloud Consultant

コメント

コメントする

CAPTCHA


目次