【Apex】SOQLのWHERE句でレコードタイプ名を指定する方法
Salesforceデベロッパーには当たり前の話なのかもしれないですが、SOQLのWHERE句でレコードタイプ名での絞り込みを行う方法を発見しました。今まではレコードタイプIdで絞り込んでいましたが、レコードタイプ名でも絞りこめる!
個人的に発見だったので紹介したいと思います。
まずは今まで、レコードタイプIdで絞り込みを行う場合はこんな書き方をしていました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
List<RecordType> recTypeList = [ SELECT Id FROM RecordType WHERE SobjectType = 'Account' AND DeveloperName =: 'RecordTypeAccount' ]; Id recTypeId = recTypeList.get(0).Id; List<Account> accList = [ SELECT Id ,Name FROM Account WHERE RecordTypeId = :recTypeId ]; System.debug(accList.size()); |
これを、こんな感じの書き方にできます。
1 2 3 4 5 6 7 8 9 10 11 12 |
// レコードタイプを指定して取引先を取得 List<Account> accList = [ SELECT Id ,Name FROM Account WHERE RecordType.DeveloperName = 'RecordTypeAccount' ]; System.debug(accList.size()); |
これは無駄がなくてイイ感じですし、何よりスッキリしてカッコいい!
過去のコードも書き換えたいくらいです。