ReadOnly アノテーション
@ReadOnly アノテーションを使用して、要求に対して返される行数の制限を 1,000,000 に増やすことで、Lightning プラットフォームデータベースに対する制限が緩和されたクエリを実行できます。他のすべての制限は適用されます。アノテーションは、要求内の DML 操作、System.schedule へのコール、およびキューに追加された非同期 Apex ジョブ操作をブロックします。
@ReadOnly アノテーションは、REST および SOAP Web サービスと Schedulable インターフェースで使用可能です。@ReadOnly アノテーションを使用するには、最上位レベルの要求がスケジュール実行または Web サービスの呼び出し内にある必要があります。たとえば、Visualforce ページが @ReadOnly アノテーションを含めて Web サービスを呼び出す場合、Visualforce は Web サービスではなく、最上位レベルの要求であるため、要求は失敗します。
Visualforce ページでは @ReadOnly アノテーションを使用してコントローラーメソッドをコールすることができます。また、それらのメソッドは同じ制限が緩和された状態で実行されます。<apex:pageBlockTable> などの繰り返しコンポーネントで使用できるコレクションのサイズなどその他の Visualforce 固有の制限を増加するには、<apex:page> タグの readonly 属性を true に設定できます。詳細は、『Visualforce 開発者ガイド』の「大量のデータセットを使用した作業」を参照してください。
バージョン管理動作の変更
API バージョン 49.0 より前の場合、@ReadOnly を Apex REST メソッド (@HttpDelete、@HttpGet、@HttpPatch、@HttpPost、または @HttpPut) で使用するには、このメソッドに @RemoteAction アノテーションも付加する必要がありました。API バージョン 49.0 以降では、Apex REST メソッドに @ReadOnly アノテーションを単純に付加することができます。