使用 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, ...}
当你需要查询以获取记录并在代码中重复访问它时,这非常有用。