Salesforce | All You Need to Know About SOSL and Related Records in Apex

What are Related Records in Apex?

Inserting Related Records 

Example :


Account acc = new Account(Name=’abc’, Phone = ‘123456’); 
insert acc; 
Contact con = new Contact(Account=acc.Id, FirstName = ‘abc’ , LastName = ‘xyz’, Phone = ‘12345’); 
Insert con;

Updating Related Records 

Contact con = [SELECT Id, Name,Account.Phone FROM Contact WHERE Name = ‘abc’ AND AccountId!=Null AND Account.Name = ‘Account1’];  
update con; 
update con.Account;

dont miss out iconDon’t forget to check out: Learn All About Salesforce Apex Programming

Now, let’s move to SOSL!

What is SOSL in Apex?

  • SOSL stands for Salesforce Object Search language. 
  • It is used to perform a text search in records. 
  • We can use SOSL to search fields across multiple sObjects records. 
  • SOQL is used to retrieve records for a single object whereas use SOSL to search fields across multiple objects. 


Find ‘SearchQuery’ [IN SearchGroup] [RETURNING ObjectsAndFields];

What is a SearchQuery?

  • Single Word: It should be enclosed in single quotes. 
  • Phrase: It is having multiple words and should be enclosed in double quotes. 

What is a SearchGroup?

SearchGroup is optional. 

  • The default is ALL FIELDS. 
  • You can choose from the following search groups: 


  • ObjectsAndFields is optional. 
  • It is the information to return in the search result – a list of one or more sObjects and within each sObject, list of one or more fields, with optional values to filter against. 
  • If not specified the search result contain the IDs of all objects found. 

dont miss out iconCheck out another amazing blog by Bhawana here: All You Need to Know About Database Class Methods to Perform DML Operations

Execute Anonymous Window 

List<List<sObject>> searchList = [FIND ‘Cloud’ IN ALL FIELDS RETURNING Account(Name),Contact(FirstName, Lastname, Email)];

Query Editor 

FIND {Cloud} IN ALL FIELDS RETURNING Account(Name), Contact(FirstName, LastName, Email)];

For example:

List<List<sObject>> searchList = [FIND ‘Abc’ IN ALL FIELDS RETURNING Account(Name), Contact(FirstName,LastName,Email)]; 
List<Account> accList = new List<Account>(); 
List<Contact> conList = new List<Contact>(); 
accList = (List<Account>) searchList[0]; 
conList = (List<Contact>) searchList[1]; 
for(Account acc : accList)
    System.debug(‘Name =>' + acc.Name); 
for(Contact con : conList)
    System.debug(con.FirstName + ‘ ‘ + con.LastName); 

So, this is all about related records in apex and SOSL. I hope this information is helpful to you. 

Source link

Interesting Posts

Leave a Reply

Your email address will not be published. Required fields are marked *