MENU
Abo
某SIer勤務。
ITエンジニアです。
日々の学びをつらつらと書いています。
保有資格:
Salesforce認定アドミニストレーター  
Salesforce認定Platformデベロッパー
Salesforce認定上級Platformデベロッパー
カテゴリー
アーカイブ

【Apex】List has no rows for assignment to SObjectのエラーと解決策について

先日、Apexの開発中に次のようなエラーに出くわしました。

System.QueryException: List has no rows for assignment to SObject

QueryExceptionということで、Apex内で発行したSOQLに何か問題があったようです。

Account acc = [Select Id, Name From Account Where Name LIKE 'テスト取引先%'];

書いていたSOQLは、上記のようなもの。

条件句に取引先の名前を指定して、取引先を取得しています。

ここで問題だったのが、SOQLの取得結果が1件のみの想定で変数を用意していたことです。

なので、SOQLで返される結果が2件以上、さらには0件の場合もエラーになってしまいます。

ちなみに私の場合は、取得結果が0件だったために発生したエラーでした。

Account型のaccに取得結果を格納するのであれば、必ず1件なければならないということですね。

これは盲点でした。

対応策としては、以下ように配列に格納することです。

List<Account> accList = [Select Id, Name From Account Where Name LIKE 'テスト取引先%'];

これで、取得結果が複数でも0件でも大丈夫です。

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

この記事を書いた人

某SIer勤務。
Salesforceエンジニアです。
日々の学びをつらつらと書いています。
Certified Administrator
Certified Platform DeveloperⅠ
Certified Platform DeveloperⅡ
Certified Sales Cloud Consultant

コメント

コメントする

CAPTCHA


目次