今日やった課題はこれ。
予想時間30分、とか書いてあるけど、自分の実力じゃ30分じゃ終わらないw
Create a Selector class for the Account object
Create a Selector class for the Account object using the steps below to return a list of Accounts.
https://trailhead.salesforce.com/ja/content/learn/modules/apex_patterns_dsl/apex_patterns_dsl_apply_selector_l_principles
- Create a Selector class for the Account object named
AccountsSelector
with aselectById
method that accepts a set of Ids and returns a list of Accounts.- Configure the Selector base class functionality to retrieve the fields Name, Description, and AnnualRevenue.
この課題をChallengeをクリアできるソースコードは以下になります。
public with sharing class AccountsSelector extends fflib_SObjectSelector {
public List<Schema.SObjectField> getSObjectFieldList() {
return new List<Schema.SObjectField>{
Account.Name,
Account.Description,
Account.AnnualRevenue
};
}
public Schema.SObjectType getSObjectType() {
return Account.SObjectType;
}
public List<Account> selectById(Set<Id> ids) {
return (List<Account>) Database.query(
newQueryFactory()
.setCondition('Id IN :ids')
.toSOQL()
);
}
}
このクラスはfflib_SObjectSelector
を拡張しています。この基底クラスは、必要なフィールドとオブジェクトタイプを取得するためのメソッドを提供します。具体的には、getSObjectFieldList()
メソッドと getSObjectType()
メソッドです。
selectById
メソッドは、指定されたIDのセットを受け取り、それに一致するアカウントのリストを返します。このメソッド内で、newQueryFactory()
を使用してSOQLクエリを生成し、Database.query
を使用してデータベースからデータを取得します。
…ってchatGPTさんが言ってましたw
コメント