使用 SOQL 構建地圖
許多人忽略的一個非常有用的功能是使用 SOQL 查詢構建 Map 的能力。
Map<Id, Account> accounts = new Map<Id, Account>([SELECT Id, Name FROM Account]);
System.debug(accounts);
當你執行此程式碼時,accounts
會包含你的帳戶物件的地圖,以 Id 為中心。除錯日誌的輸出看起來類似於:
11:15:10:025 USER_DEBUG [13]|DEBUG|{
XXXXXXXXXXXXXXXXXX=Account:{Id=XXXXXXXXXXXXXXXXXX, Name=Account 1},
YYYYYYYYYYYYYYYYYY=Account:{Id=YYYYYYYYYYYYYYYYYY, Name=Account 2},
ZZZZZZZZZZZZZZZZZZ=Account:{Id=ZZZZZZZZZZZZZZZZZZ, Name=Account 3},
...
}
你現在可以使用其 ID 查詢 Account 物件。此外,如果你想要一組唯一 ID,可以呼叫 Map 類的 keySet()
函式,如下所示:
System.debug(accounts.keySet());
在除錯日誌中看起來像這樣:
11:23:21:010 USER_DEBUG [15]|DEBUG|{XXXXXXXXXXXXXXXXXX, YYYYYYYYYYYYYYYYYY, ZZZZZZZZZZZZZZZZZZ, ...}
當你需要查詢以獲取記錄並在程式碼中重複訪問它時,這非常有用。