使用 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, ...}

當你需要查詢以獲取記錄並在程式碼中重複訪問它時,這非常有用。