Until Winter 21 release, whenever we had to fetch all or certain entries of a Custom Metadata Types, we had to write a full-blown query.

And it's going to look something like this!

List<Location__mdt> locationMetadata = [SELECT field1, field2 on Location__mdt];

Now it's all simplified, as a part of this release the way we can interact with Custom Metadata Types is changed a bit, for good.

There are 2 new methods which are available to us as a part of the release.

  • getAll()
  • getInstance() - This method accepts one parameter and it can be either record id, developer name or qualified API name.
//this give us access to all the records in the custom metadata types
List<Location__mdt> loc = Location__mdt.getAll();

//this give us access to the record that's associated with the provided record ID
List<Location__mdt> loc = Location__mdt.getInstance();

//this give us access to the record that's associated with the provided DeveloperName
List<Location__mdt> loc = Location__mdt.getInstance('DeveloperName');

//this give us access to the record that's associated with the provided QualifiedApiName
List<Location__mdt> loc = Location__mdt.getInstance('QualifiedApiName');

That's pretty much handy is it!

This makes sure the way we interact with Custom Settings and Custom Metadata follow the same standards.