Activity › Forums › Salesforce® Discussions › How to return Map result from SOQL query in Apex?
Tagged: Salesforce Apex, Salesforce SOQL
-
How to return Map result from SOQL query in Apex?
Posted by Suraj on April 21, 2017 at 1:41 PMHow to return Map result from SOQL query in Apex?
Saurabh replied 9 years, 1 month ago 2 Members · 1 Reply -
1 Reply
-
Hi Suraj
You can perform this operation by going through this code given below:
//Creating List of all account Ids
List<id> accIdsList = new List<id>() ;//Creating set of all account Ids
Set<id> accIdsSet = new Set<id>() ;//Fetching all accounts
List<account> accList = new List<Account>();//Creating Map with account id as key and account record as value
Map<Id,Account> accountIdObjMap = new Map<Id,Account>([select Id,name,site,rating,AccountNumber from account limit 50000]);//getting list of account using map.values method
accList = accountIdObjMap.values();//getting set of account Id’s using map.keySet method
accIdsSet = accountIdObjMap.keySet();//getting list of account Id’s using list.addAll method
accIdsList.addAll(accIdsSet);To clarify, this method can only be used to generate Maps using Id of the object you are querying as the key. If you want to use a different value as the key, you will have to iterate over the list returned by your query and put values into a Map. For instance, if you wanted to use AccountId as the key, you would need to do something like this: List<Opportunity> oppList = [Select Id, AccountId from Opportunity]; Map<Id,Opportunity> accOppMap = new Map<Id,Opportunity>(); for(Opportunity o : oppList){ accOppMap.put(o.AccountId,o); }
Hope this may help
Log In to reply.