We’ve added a method on the Apex SObject class that makes it more
efficient to iterate over fields that have been populated in memory.
Previously, iterating over just the populated the fields of an SObject involved
some complicated programming. For example, if you queried an SObject using
SOQL, it wasn’t easy to tell which fields were returned. In Summer ’16, we’ve
introduced a new method on the SObject class that returns a map of populated
field names and their corresponding values:
Account a = new Account();
a.name = 'TestMapAccount1';
insert a;
a = [select Id,Name from Account where
id=:a.Id];
Map<String, Account>
fieldsToValue = a.getPopulatedFieldsAsMap();
for (String fieldName :
fieldsToValue.keySet()){
System.debug('field name is ' +
fieldName + ', value is ' +
fieldsToValue.get(fieldName));
}
|
Admittedly the example by Salesforce
above isn’t amazing but if the SOQL was a dynamic SOQL I can see a lot of
benefit in this
You can also perform without a SOQL
ld names and their corresponding values:
Account a = new Account();
a.name = 'TestMapAccount1';
insert a;
Map<String, Account>
fieldsToValue = a.getPopulatedFieldsAsMap();
for (String fieldName : fieldsToValue.keySet()){
System.debug('field name is ' +
fieldName + ', value is ' +
fieldsToValue.get(fieldName));
}
|
No comments:
Post a Comment
Note: only a member of this blog may post a comment.