【Salesforce 認定Platformデベロッパー】試験対策:第17問

問題

次のクエリを実行します。

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」のようなエラーが発生します。

次の問題へ

前の問題へ

1問目から復習する

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

雇われのシステムエンジニアです。
普段は車載ECUのセキュリティー分野に従事しております。

■保有資格
Salesforce 認定 アドミニストレーター
Salesforce 認定 Platform アプリケーションビルダー
Salesforce 認定 Platform デベロッパー

コメント

コメントする

目次