Newer Version Available
sObjects のリスト
リストを使用して、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 リストの要素にアクセスして設定できます。次に例を示します。
一括処理
レコード ID の生成
Apex は、リストがデータ操作言語 (DML) ステートメントによってデータベースに正常に挿入または更新されると、sObject リストの各オブジェクトに ID を自動的に生成します。従って、sObjects のリストに同じ sObject が複数含まれる場合は、それが null ID を持つ場合であっても、sObject のリストの挿入や更新は行えません。この場合、2 つの ID がメモリ内の同じ構造に書き込まれなければならないことになり、これは不正処理となります。
たとえば、次のコードブロックの insert ステートメントは、同じ sObject (a) への 2 つの参照が含まれるリストを挿入しようと��るため、ListException を生成します。
sObject の一次元リストの配列表記の使用
または、配列表記 (角括弧) を使用して、sObject のリストを宣言して参照することもできます。
sObject リストの配列表記を使用したその他いくつかの例を次に示します。
| 例 | 説明 |
|---|---|
|
|
要素のない取引先リストを定義します。 |
|
|
3 つの取引先にメモリが割り当てられた取引先リストを定義します。最初の位置に新しい取引先オブジェクト、2 番目の位置に null、3 番目の位置に別の新しい取引先オブジェクトが割り当てられます。 |
|
|
新しいリストで取引先責任者リストを定義します。 |