Sponsored
Apex で、 Map<Id, SObject> のような形式でSOQLのデータを保持したい場合に覚えておくと便利な書き方を備忘録として記載します。
KISS (Keep It Simple, Stupid) な書き方でググると良いでしょう。
一般的な書き方
// SOQLで取引先を取得
List<Account> accountList = [SELECT Id, Name FROM Account];
// Mapを作成
Map<Id, Account> accountMap = new Map<Id, Account>();
// 取得した取引先を新しいMapに追加
for(Account a : accountList){
accountMap.put(a.Id, a);
}
簡潔な書き方
// SOQLでアカウントを取得し、直接Mapに追加
Map<Id, Account> accountMap = new Map<Id, Account>(
[SELECT Id, Name FROM Account]
);
ひとこと
Apex のコード量も Salesforce 組織には上限が定められています。 なるべく簡潔な書き方ができるように心がけましょう。
【Salesforce】SOQLで親子関係のあるリレーションを取得 | Lazy Developer
Salesforce ではオブジェクトに 参照関係 もしくは 主従関係 としてリレーション項目を設定できます。 このリレーションを用いて、1度の SOQL で親子関係にあるオブジェクトを一括で取得する方法を備忘録として記載します。 この記事では、親オブジェクトから子オブジェクト、およびその逆の取得方法について紹介します