【Salesforce】Apex でのセレクタレイヤの原則の適用

スポンサーリンク

スポンサーリンク

Trailhead

今日やった課題はこれ。
予想時間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.

  • Create a Selector class for the Account object named AccountsSelector with a selectById 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.
https://trailhead.salesforce.com/ja/content/learn/modules/apex_patterns_dsl/apex_patterns_dsl_apply_selector_l_principles

この課題を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

コメント

スポンサーリンク






スポンサーリンク





タイトルとURLをコピーしました