Skip to main content

RESULT

For more details check SOQLEvaluator API - RESULT.

toId

Apex

Traditional Approach
List<Account> accounts = [SELECT Id FROM Account WITH USER_MODE LIMIT 1];
Id accountId = accounts.isEmpty() ? null : accounts[0].Id;

SOQL Lib

SOQLEvaluator Approach
Id accountId = SOQLEvaluator.of([
SELECT Id
FROM Account
WITH USER_MODE
LIMIT 1
]).toId();

toIds

Apex

Traditional Approach
Set<Id> accountIds = new Set<Id>();

for (Account acc : [SELECT Id FROM Account WHERE Industry = 'Technology' WITH USER_MODE]) {
accountIds.add(acc.Id);
}

SOQL Lib

SOQLEvaluator Approach
Set<Id> accountIds = SOQLEvaluator.of([
SELECT Id
FROM Account
WHERE Industry = 'Technology'
WITH USER_MODE
]).toIds();

toIdsOf

Apex

Traditional Approach
Set<Id> ownerIds = new Set<Id>();

for (Account acc : [SELECT OwnerId FROM Account WHERE Industry = 'Technology' WITH USER_MODE]) {
if (acc.OwnerId != null) {
ownerIds.add(acc.OwnerId);
}
}

SOQL Lib

SOQLEvaluator Approach
Set<Id> ownerIds = SOQLEvaluator.of([
SELECT OwnerId
FROM Account
WHERE Industry = 'Technology'
WITH USER_MODE
]).toIdsOf(Account.OwnerId);

Apex

Set<Id> parentAccountIds = new Set<Id>();

for (Account acc : [SELECT Parent.Id FROM Account WHERE Industry = 'Technology' WITH USER_MODE]) {
if (acc.Parent?.Id != null) {
parentAccountIds.add(acc.Parent.Id);
}
}

SOQL Lib

Set<Id> parentAccountIds = SOQLEvaluator.of([
SELECT Parent.Id
FROM Account
WHERE Industry = 'Technology'
WITH USER_MODE
]).toIdsOf('Parent', Account.Id);

doExist

Apex

List<Account> accounts = [
SELECT Id
FROM Account
WHERE NumberOfEmployees > 100
WITH USER_MODE
LIMIT 1
];

Boolean hasAccountsWithMoreThan100Employees = !accounts.isEmpty();

SOQL Lib

Boolean hasAccountsWithMoreThan100Employees = SOQLEvaluator.of([
SELECT Id
FROM Account
WHERE NumberOfEmployees > 100
WITH USER_MODE
]).doExist();

toValueOf

Apex

List<Account> accounts = [SELECT Name FROM Account WHERE Id = '1234' WITH USER_MODE LIMIT 1];
String accountName = accounts.isEmpty() ? null : accounts[0].Name;

SOQL Lib

String accountName = (String) SOQLEvaluator.of([
SELECT Name
FROM Account
WHERE Id = '1234'
WITH USER_MODE
LIMIT 1
]).toValueOf(Account.Name);

toValuesOf

Apex

Set<String> accountNames = new Set<String>();

for (Account acc : [SELECT Name FROM Account WITH USER_MODE]) {
if (acc.Name != null) {
accountNames.add(acc.Name);
}
}

SOQL Lib

Set<String> accountNames = SOQLEvaluator.of([
SELECT Name
FROM Account
WITH USER_MODE
]).toValuesOf(Account.Name);

toObject

Apex

List<Account> accounts = [
SELECT Id, Name
FROM Account
WHERE Id = '1234'
WITH USER_MODE
LIMIT 1
];

Account account = accounts.isEmpty() ? null : accounts[0];

SOQL Lib

Account account = (Account) SOQLEvaluator.of([
SELECT Id, Name
FROM Account
WHERE Id = '1234'
WITH USER_MODE
LIMIT 1
]).toObject();

toList

Apex

List<Account> accounts = [SELECT Id, Name FROM Account WITH USER_MODE];

SOQL Lib

List<Account> accounts = SOQLEvaluator.of([
SELECT Id, Name
FROM Account
WITH USER_MODE
]).toList();

toMap

Apex

Map<Id, Account> idToAccount = new Map<Id, Account>([SELECT Id FROM Account WITH USER_MODE]);

SOQL Lib

Map<Id, Account> idToAccount = (Map<Id, Account>) SOQLEvaluator.of([
SELECT Id
FROM Account
WITH USER_MODE
]).toMap();

toMap with custom key

Apex

Map<String, Account> nameToAccount = new Map<String, Account>();

for (Account acc : [SELECT Id, Name FROM Account WITH USER_MODE]) {
nameToAccount.put(acc.Name, acc);
}

SOQL Lib

Map<String, Account> nameToAccount = (Map<String, Account>) SOQLEvaluator.of([
SELECT Id, Name
FROM Account
WITH USER_MODE
]).toMap(Account.Name);

toMap with custom relationship key

Apex

Map<String, Account> createdByEmailToAccount = new Map<String, Account>();

for (Account acc : [SELECT Id, CreatedBy.Email FROM Account WITH USER_MODE]) {
if (acc.CreatedBy?.Email != null) {
createdByEmailToAccount.put(acc.CreatedBy.Email, acc);
}
}

SOQL Lib

Map<String, Account> createdByEmailToAccount = (Map<String, Account>) SOQLEvaluator.of([
SELECT Id, CreatedBy.Email
FROM Account
WITH USER_MODE
]).toMap('CreatedBy', User.Email);

toMap with custom key and value

Apex

Map<String, String> accountNameToIndustry = new Map<String, String>();

for (Account acc : [SELECT Id, Name, Industry FROM Account WITH USER_MODE]) {
accountNameToIndustry.put(acc.Name, acc.Industry);
}

SOQL Lib

Map<String, String> accountNameToIndustry = SOQLEvaluator.of([
SELECT Id, Name, Industry
FROM Account
WITH USER_MODE
]).toMap(Account.Name, Account.Industry);

toAggregatedMap

Apex

Map<String, List<Account>> industryToAccounts = new Map<String, List<Account>>();

for (Account acc : [SELECT Id, Name, Industry FROM Account WITH USER_MODE]) {
if (!industryToAccounts.containsKey(acc.Industry)) {
industryToAccounts.put(acc.Industry, new List<Account>());
}
industryToAccounts.get(acc.Industry).add(acc);
}

SOQL Lib

Map<String, List<Account>> industryToAccounts = (Map<String, List<Account>>) SOQLEvaluator.of([
SELECT Id, Name, Industry
FROM Account
WITH USER_MODE
]).toAggregatedMap(Account.Industry);

toAggregatedMap with relationship key

Apex

Map<String, List<Account>> createdByEmailToAccounts = new Map<String, List<Account>>();

for (Account acc : [SELECT Id, Name, CreatedBy.Email FROM Account WITH USER_MODE]) {
String email = acc.CreatedBy?.Email;
if (email != null) {
if (!createdByEmailToAccounts.containsKey(email)) {
createdByEmailToAccounts.put(email, new List<Account>());
}
createdByEmailToAccounts.get(email).add(acc);
}
}

SOQL Lib

Map<String, List<Account>> createdByEmailToAccounts = (Map<String, List<Account>>) SOQLEvaluator.of([
SELECT Id, Name, CreatedBy.Email
FROM Account
WITH USER_MODE
]).toAggregatedMap('CreatedBy', User.Email);

toAggregatedMap with custom key and value

Apex

Map<String, List<String>> industryToAccountNames = new Map<String, List<String>>();

for (Account acc : [SELECT Id, Name, Industry FROM Account WITH USER_MODE]) {
if (!industryToAccountNames.containsKey(acc.Industry)) {
industryToAccountNames.put(acc.Industry, new List<String>());
}
industryToAccountNames.get(acc.Industry).add(acc.Name);
}

SOQL Lib

Map<String, List<String>> industryToAccountNames = SOQLEvaluator.of([
SELECT Id, Name, Industry
FROM Account
WITH USER_MODE
]).toAggregatedMap(Account.Industry, Account.Name);