<<前へ 次へ>>

質問 55/99

次の Apex ステートメントがあるとします。
アカウント myAccount = [アカウントから Id、名前を選択);
SOQL クエリによって複数のアカウントが返された場合、何が起こりますか?

最新のコメント (最新のコメントはトップにあります。)

generativeAI   - 2025-11-22

正解は **B** です。

### 正解の解説

**B. 未処理の例外がスローされ、コードが終了します。**

Apexにおいて、SOQLクエリの結果を「単一の sObject 変数(この場合は `Account`)」に直接代入する場合、**クエリ結果は必ず「1件」でなければなりません**。

* [cite\_start]**0件の場合:** `System.QueryException: List has no rows for assignment to SObject` が発生します [cite: 758-761]。
* [cite\_start]**2件以上の場合:** `System.QueryException: List has more than 1 row for assignment to SObject` が発生します [cite: 764-769]。

このコードには `try-catch` ブロックがないため、例外は「未処理(Unhandled)」となり、ガバナ制限やシステム例外と同様にトランザクションが停止(異常終了)します。

-----

### 不正解の解説

**A. 変数 myaccount は自動的に List データ型にキャストされます。**
これは **不正解** です。Apex は静的型付け言語であり、`Account` 型として宣言された変数に `List<Account>` を代入しようとしても、自動的に型が変わることはありません。

**C. クエリが失敗し、デバッグ ログにエラーが書き込まれます。**
これは **不正解** です。単にログにエラーが書かれて処理が続行するのではなく、**例外(Exception)が発生して処理が強制終了**します。挙動の説明として B の方が正確です。

**D. 返された最初のアカウントは myAccount に割り当てられます。**
これは **不正解** です。
もしクエリの末尾に `LIMIT 1` がついていれば、最初のアカウントが割り当てられて成功しますが、`LIMIT 1` がない状態で複数件が返されると、システムは「どれを代入していいか不明(あるいは開発者の意図したデータが一意でない)」と判断し、例外をスローします。

### 💡 正しい書き方

複数返る可能性がある場合は、**リスト (`List<Account>`)** で受け取るか、**`LIMIT 1`** をつける必要があります。

```apex
// パターン1: リストで受け取る (0件でも複数件でもエラーにならない)
List<Account> accList = [SELECT Id, Name FROM Account];

// パターン2: 1件だけ欲しい場合 (LIMIT 1 をつける)
Account myAccount = [SELECT Id, Name FROM Account LIMIT 1];
```...

コメントを発表する

あなたのメールアドレスは公開されません。必要な部分に * が付きます。

質問一覧「99問」
質問1 Salesforce にデータをインポートおよびエクスポートする場合、...
1コメント質問2 DML ステートメントの数など、特定のガバナーに使用されたリソー...
1コメント質問3 商談には、マスター詳細関係にないカスタム オブジェクトからロ
1コメント質問4 開発者は、Salesforce Classic ユーザーインターフェースでカス...
3コメント質問5 (質問全文) Universal Containers は、商談が Closed/Won ステ...
1コメント質問6 開発者は、販売記録のリストを表示する Lightning Web コンポー...
4コメント質問7 Universal Containers には、サードパーティの JavaScript フレ...
1コメント質問8 匿名 Apex コードを実行する 2 つのユースケースは何ですか? 2つ...
質問9 継続的インテグレーションの一環として、開発者はデプロイメント
1コメント質問10 開発者は、Apex クラスのプライベート メソッドの単体テストをど...
3コメント質問11 Next Best Action 戦略では、Apex メソッドを呼び出す Enhance E...
1コメント質問12 開発者はヘルパークラスを使用して新しい Apex トリガーを作成し...
1コメント質問13 Candidate _c カスタム オブジェクトには Primaryld_c カスタム ...
1コメント質問14 組織内の Account オブジェクトには、Branch と呼ばれる子オブジ...
2コメント質問15 Apex テストクラスで @testSetup アノテーションを使用すること...
1コメント質問16 Universal Containers では、ユーザーが自分のアカウントに関す...
1コメント質問17 開発者は、Expense _c オブジェクトで次のトリガーを識別します...
1コメント質問18 ユーザーがアカウントの郵便番号を編集する場合、「タイムゾーン
1コメント質問19 開発者は、Apex クラスを使用するカスタム注文管理アプリを作成...
1コメント質問20 開発者は、親 Lightning Web コンポーネント内にネストされた子 ...
2コメント質問21 Lightning Experience のアカウントの標準編集ボタンを上書きす...
1コメント質問22 Batchable インターフェースを実装するときに Apex コードが Ape...
1コメント質問23 Lightning Web コンポーネントで使用するために、AccountControl...
2コメント質問24 SOQL クエリが返すことができる 3 つのデータ型はどれですか? 3...
1コメント質問25 Apex で @lnvocableMethod アノテーションを使用する際の 3 つの...
3コメント質問26 (質問全文) Universal Containersは最近、ClassicからLightnin...
1コメント質問27 開発者は、複数の Lightning Web コンポーネントを含むアプリを...
1コメント質問28 ある会社のエンジニアリング部門では、100 台以上のサーバーのク...
1コメント質問29 (質問全文) 開発者は、既存の Payment クラスの実装を提供する...
3コメント質問30 次のコード スニペットは、2,000 件を超えるリード レコードがあ...
1コメント質問31 「高」、「中」、「低」の値は、異なるオブジェクトにわたる複数
1コメント質問32 Universal Containers には、特定のアカウントによってレンタル...
2コメント質問33 リード開発者が「OrderRequest」という仮想クラスを作成します。...
4コメント質問34 Universal Containers の管理者は、システム内で削除できるのは...
質問35 サンドボックスから本番環境にデプロイする場合の 2 つの考慮事...
1コメント質問36 Lightning Web コンポーネントのプロパティに接続できるようにす...
質問37 Universal Hiring は、Salesforce を使用して求人応募を取得しま...
2コメント質問38 次のコード スニペットの結果は何でしょうか? public word doWor...
1コメント質問39 Universal Containers では、ユーザーが複数のレコードを編集で...
1コメント質問40 開発者がアカウント オブジェクトにトリガーを作成しました。ト
1コメント質問41 開発者は、ユーザーが複数の商談を作成できるページを作成してい
1コメント質問42 組織には、レコード更新要素を使用して商談を編集する既存のフロ
1コメント質問43 開発者は、外部 Web アプリケーションで使用されるカスタム SOAP...
1コメント質問44 次のコード スニペットを検討してください。 apex CopyEdit publ...
3コメント質問45 開発者は、アカウントの SOQL ステートメントの結果セットを反復...
3コメント質問46 開発者は、Visualforce ウィザードと連携して複数の sObject の...
質問47 新機能開発の一環として、開発者は、ステートフル クライアント
質問48 カスタム オブジェクト Trainer__c には、別のカスタム オブジェ...
3コメント質問49 開発者がバッチ メソッドまたは将来のメソッドのステータスに関
質問50 開発者は、従来のオンプレミス SQL データベースと統合していま...
質問51 ISV Salesforce パートナーの Cloud Kicks Fitness は、管理パッ...
3コメント質問52 どの例外タイプをキャッチできないでしょうか?
2コメント質問53 Visualforce ページで Lightning コンポーネントを作成するため...
1コメント質問54 質問のフィードバックをここに入力してください (オプション): (...
1コメント質問55 次の Apex ステートメントがあるとします。 アカウント myAccoun...
1コメント質問56 開発者が組織内でテストを実行する 2 つの方法は何ですか? 2つの...
質問57 開発者が、キュー可能インターフェースを実装するクラスのキュー
3コメント質問58 AW Computing の開発者は、カスタム オブジェクト Pricing Struc...
質問59 開発者は、失注理由が空白の場合、営業マネージャー プロファイ
1コメント質問60 Universal Containers (UC) は、注文と注文明細項目の間にマスタ...
1コメント質問61 Universal Containers (UC) は、Vendor と呼ばれるカスタム オブ...
質問62 Universal Containers は、Salesforce 組織内のすべてのデータと...
1コメント質問63 経営陣は、年間売上高が100万ドルを超える取引先に対して商談を...
1コメント質問64 変更セット展開の 3 つの特徴は何ですか? 3 つの回答を選択して...
質問65 Universal Containers は、新しい Salesforce アプリケーション...
質問66 Universal Containers には、注文番号を使用して顧客とサービス ...
1コメント質問67 開発者は Visualforce ページを Lightning Web コンポーネントに...
1コメント質問68 Aura アプリケーション イベントは従来のパブリッシュ/サブスク...
質問69 開発者は Salesforce プラットフォーム上で新しいアプリケーショ...
質問70 開発者は、Apex クラス内のメソッドをインポートする Lightning ...
2コメント質問71 開発者は、連絡先情報を収集するためのカスタム Lightning Web ...
質問72 次の匿名ブロックがあるとします。 (Exhibit) 10,000 件を超える...
2コメント質問73 開発者は、レコードが特定の条件を満たしたときに送信メッセージ
1コメント質問74 Universal Containers (UC) は、営業チーム向けに、すべての営業...
質問75 クレジットカード会社は、サービス エージェントが破損または盗
1コメント質問76 (Exhibit) コードが実行されると、DML 例外がスローされます。 ...
質問77 Aura コンポーネント内のどの 3 つのリソースに JavaScript 関数...
1コメント質問78 開発者は、大量のレコードを更新するためにバッチ Apex ジョブを...
2コメント質問79 以下のコンポーネント コード要件を参照してください。 &lt;ligh...
2コメント質問80 開発者がバッチメソッドまたは将来のメソッドのステータスに関す
質問81 開発者は、Apex クラスを作成する際に、開発中のすべての機能が...
2コメント質問82 Universal Containers (UC) は、配送プロセスを効率化しながら配...
1コメント質問83 ユーザーがアカウントの郵便番号を編集する場合、「タイムゾーン
1コメント質問84 サンドボックスで作業中に、テスト ランナーで Apex テストを実...
2コメント質問85 他のレコードの挿入に失敗した場合に、レコード リスト内の一部
質問86 Universal Containers は、個人に関する情報を保存する Applican...
2コメント質問87 開発者は、更新前イベントでアカウント オブジェクトにトリガー
2コメント質問88 Lightning Web コンポーネントのカスタムイベントに当てはまる 2...
2コメント質問89 Aura コンポーネントで JavaScript リソースをロードするときの ...
2コメント質問90 (質問全文) Visualforce ページの内容を PDF として表示するコ...
質問91 Universal Containers は、マーケティング部門向けに新しい Ligh...
1コメント質問92 開発者は、OpportunityLineltem トリガーをカバーするテスト ク...
質問93 多くの開発者のチームが、本番組織と同じ構成を持つ独自の組織で
1コメント質問94 開発者は、システムに特定の条件が存在する場合に、Request__c ...
1コメント質問95 Aura コンポーネントとアプリケーション イベントの処理に関する...
1コメント質問96 開発者は、システム内に存在する ContactSearch Apex クラスのセ...
質問97 アプリケーションを開発するメリットは何ですか
質問98 Universal Containers には、カスタム オブジェクト「エンジニア...
2コメント質問99 開発者がカスタム オブジェクトにトリガーを作成しました。この