この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Newer Version Available

This content describes an older version of this product. View Latest

sObjects のリスト

リストには、他の種別の要素の 1 つである sObject を含めることができます。sObject のリストは、データの一括処理に使用できます。

リストを使用して、sObject を保存できます。リストは、SOQL クエリを使用するときに便利です。SOQL クエリは sObject データを返し、このデータを sObject のリストに保存できます。また、1 回のコールでの sObject のリストの挿入など、一括処理の実行にリストを使用することもできます。

sObject のリストを宣言するには、<> 文字で囲まれた sObject 型の前に List キーワードを使用します。次に例を示します。

SOQL クエリによるリストの自動入力

List 変数を SOQL クエリの結果に直接割り当てることができます。SOQL クエリは、返されたレコードが入力された新しいリストを返します。宣言された List 変数に、クエリされるものと同じ sObject が含まれていることを確認してください。または、汎用 sObject データ型を使用することもできます。

この例では、取引先のリストを宣言して SOQL クエリの戻り値に割り当てる方法を示します。このクエリは、Id 項目と Name 項目を含む最大 1,000 個の取引先レコードを返します。

リスト要素の追加と取得

プリミティブデータ型のリスト同様、Apex で提供される List メソッドを使用して、sObject リストの要素にアクセスして設定できます。次に例を示します。

一括処理

DML 操作にリストを渡すことで、sObject のリストを一括処理できます。この例では、取引先のリストを挿入する方法を示します。

レコード ID の生成

Apex は、リストがデータ操作言語 (DML) ステートメントによってデータベースに正常に挿入または更新されると、sObject リストの各オブジェクトに ID を自動的に生成します。従って、sObjects のリストに同じ sObject が複数含まれる場合は、それが null ID を持つ場合であっても、sObject のリストの挿入や更新は行えません。この場合、2 つの ID がメモリ内の同じ構造に書き込まれなければならないことになり、これは不正処理となります。

たとえば、次のコードブロックの insert ステートメントは、同じ sObject (a) への 2 つの参照が含まれるリストを挿入しようと��るため、ListException を生成します。

sObject の一次元リストの配列表記の使用

または、配列表記 (角括弧) を使用して、sObject のリストを宣言して参照することもできます。

次の例では、配列表記を使用して取引先のリストを宣言します。
次の例では、角括弧を使用してリストに要素を追加します。

sObject リストの配列表記を使用したその他いくつかの例を次に示します。

説明
要素のない取引先リストを定義します。
3 つの取引先にメモリが割り当てられた取引先リストを定義します。最初の位置に新しい取引先オブジェクト、2 番目の位置に null、3 番目の位置に別の新しい取引先オブジェクトが割り当てられます。
新しいリストで取引先責任者リストを定義します。