【Apex】バッチ一括処理のstartメソッドでインラインSOQLを使用する。[ ]カッコで囲む書き方

Salesforce

Apexでバッチ処理(一括処理)を作ろうと思い公式のヘルプやTrailheadを見てみると、startメソッドでインラインSOQLを使用しているサンプルが見当たらない。どうやって書くのかな?インラインSOQLは使えないのかな?となったので、メモろうと思います。

バッチ処理(一括処理)でインラインSOQLは使えます。

インラインSOQLとは

そもそもインラインSOQLって何かというと

List<Account> accList = [SELECT Id, Name FROM Account];

この書き方です。SOQLを [ ] ←このカッコで囲むやつです。

SOQLの書き方としてはこの書き方もできますが

List<Account> accList = Database.query(‘SELECT Id, Name FROM Account’);

インラインSOQLの最大のメリットは、コンパイル段階でSOQLの書き間違いに気付くこと!Apexはこの書き方ができて本当に便利です。出来る限りこれで書きたいですね。

一括処理でインラインSOQLの使い方

本題に戻って、一括処理のstartメソッドでインラインSOQLの使い方です。

まあ、使い方というほど大した話ではないのですが

Database.getQueryLocatorには文字列クエリだけではなく、インラインSOQLも食わせることが出来ます。

以上・・

コメント

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