ApexEloquent ガイド

ApexEloquent は、SOQL と DML を「型付きで組み立て可能なクエリビルダー」と「DI 可能なデータアクセス層」で扱う Apex Stem の中心 OSS です。Setup (事前準備・インストール)、プロダクションコードでの使い方を解説する 使い方ガイド、各クラスの API を網羅する API リファレンス、設計の動機を掘り下げる Deep Dives の 4 段構えで構成しています。

バージョンについて

現行は v3 系と v2 系です。 違いは実行モードだけで、v3 系は SOQL / DML の既定が ユーザーモード (項目・オブジェクト権限を尊重) になっています。 それ以外の機能は同じです。

本ガイドは共通の内容として書き、モードの差分だけ個別に示します。 使っているバージョンは次で確認できます。

git -C force-app/main/default/classes/ApexEloquent describe --tags

Deep Dives

ApexEloquent の設計哲学、Apex 文脈での Repository パターンの落とし所、生 SOQL からの移行など、なぜこの形に落ち着いたかを掘り下げる読みものです。

Deep Dive

Query Delegation Pattern

ApexEloquent の設計哲学。Selector Pattern の長期運用課題を出発点に、クエリ構築と実行を分けることでどんな問題が解けるのか、Scribe / IEloquent / IEntry がそれをどう体現しているのかを解説します。

ArchitectureDesign PatternSelector
Deep Dive

Apex における Repository パターンの試行錯誤と内蔵化

Apex で Repository パターンを愚直に書くと何が起きるか、Salesforce 公式の Selector Pattern との関係、ApexEloquent が IEloquent として「内蔵 Repository」を提供する理由を、公式メリットと長期運用副作用の対比で解説します。

SelectorRepositoryBuilt-in Repository
Deep Dive

Apex の生 SOQL から、チェーンメソッドで組み立てる ORM へ

生 SOQL 中心の Apex 開発で支払っている代償 (可読性 / 動的条件 / 型安全性 / リレーション / テスト) を、Scribe + IEloquent でどう軽くするかを実例ベースで解説する移行入門です。

SOQLScribeMigration
Deep Dive

MockEntry: Apex のテストデータ作成を成立させる仕組み

書き込み不可項目 (数式 / ロールアップ / auto-number / リレーション名) と親子関係構築の困難という Apex のテスト 2 大課題を、MockEntry の override map / SELECT 漏れ検知 / setParent・setChildren / times プレースホルダ / 集計結果のモックでどう解決するかを網羅的に解説します。

MockEntryTest DataNon-writable Fields
Deep Dive

モックテストの偽陽性を検知する: SELECT 漏れの安全網

「テストでは通って本番で落ちる」タイプの偽陽性問題を、ApexEloquent が Scribe との連携で構造的に塞いでいる仕組みを、主オブジェクト / 親リレーション / 子サブクエリ / 集計エイリアスの 4 ケースで「バグ入り Usecase + テストが catch する」ペアの実コード例で実証します。

False PositiveSELECT 漏れTesting

次に読む