【Salesforce】Apex で SOQL の結果を Map に反映する簡潔な書き方

  • 備忘録
  • Salesforce
  • Apex

Apex で、 Map<Id, SObject> のような形式でSOQLのデータを保持したい場合に覚えておくと便利な書き方を備忘録として記載します。

KISS (Keep It Simple, Stupid) な書き方でググると良いでしょう。

一般的な書き方

// SOQLで取引先を取得
List&lt;Account&gt; accountList = [SELECT Id, Name FROM Account];

// Mapを作成
Map&lt;Id, Account&gt; accountMap = new Map&lt;Id, Account&gt;();

// 取得した取引先を新しいMapに追加
for(Account a : accountList){
    accountMap.put(a.Id, a);
}

簡潔な書き方

// SOQLでアカウントを取得し、直接Mapに追加
Map&lt;Id, Account&gt; accountMap = new Map&lt;Id, Account&gt;(
  [SELECT Id, Name FROM Account]
);

ひとこと

Apex のコード量も Salesforce 組織には上限が定められています。 なるべく簡潔な書き方ができるように心がけましょう。

Sponsored