問題
次のクエリを実行します。
Contact con = [SELECT ID,FirstName,LastName,Email FROM Contact WHERE LastName = 'Smith'];
姓が「Smith」のレコードがない場合、クエリは何を返しますか。
- 空の値を持つ取引先責任者
- nullに初期化された取引先責任者
- 取引先責任者の空のリスト
- 行が見つからないというエラー
正解
- 空の値を持つ取引先責任者
- nullに初期化された取引先責任者
- 取引先責任者の空のリスト
- 行が見つからないというエラー
解説
それぞれの選択肢の理由について説明します。
□ 空の値を持つ取引先責任者
これは不正解です。SOQLクエリが一致するレコードを見つけられない場合でも、新たに空の値を持つ取引先責任者を作成することはありません。
□ nullに初期化された取引先責任者
これは不正解です。SOQLクエリが一致するレコードを見つけられない場合でも、新たにnullに初期化された取引先責任者を作成することはありません。
□ 取引先責任者の空のリスト
これは不正解です。もしクエリ結果をリスト型に代入しようとしていたなら、これは正しい答えになるかもしれません。なぜなら、SOQLクエリは常にリストを返し、もし結果が存在しない場合は空のリストになるからです。しかし、この問題ではクエリ結果を単一のSObject型変数(con)に代入しようとしており、その結果が0件(または2件以上)の場合、エラーが発生します。
□ 行が見つからないというエラー
これは正解です。この問題では、クエリの結果を単一のSObject型変数に代入しようとしています。SOQLクエリが0件または複数件の結果を返した場合、この代入操作は失敗し、「System.QueryException: List has more than 1 row for assignment to SObject」のようなエラーが発生します。
次の問題へ
【Salesforce 認定Platformデベロッパー】試験対策:第18問
問題 Lightningコンポーネントフレームワークでは、クライアント側のコントローラーロジックはどこに含まれていますか。 Apex Visualforce HTML JavaScript 正解 Apex V…
前の問題へ
【Salesforce 認定Platformデベロッパー】試験対策:第16問
問題 Apexテストクラスを作成するときに使用できるメソッドは何ですか。2つ選びなさい。 開発者コンソールで無視するエラータイプを選択するメソッド @futureメソッドの…
1問目から復習する
【Salesforce 認定Platformデベロッパー】試験対策:第1問
問題 デバッグログに書き込まれるときのxの値は何ですか。 Integer x = 0; do { x = 1; x++; } while (x < 1); System.debug(x); 0 1 2 3 正解 0 1 2 3 解説 デバッ…
コメント