S.B.S. Salesforce技術ブログ

教えて921さん!

StandardController.getRcord()はレコードを取ってきてるわけではない!!

f:id:sbsSF:20201110115948p:plain

VFページを作成するとき、StandardController.getRcord()をよく使いますよね。

getRecordなんていう名前のメソッドなので対象のレコードの情報をそのまま取ってきてると勘違いしていました。 結果は上画像参照

実はレコードのIDを取ってきているだけで、ID以外のFiledはクエリを書いて再度取得してあげなければいけません。

「getRecordしてるのに何で再度クエリ書かなきゃいけないんだろう」 とよく思っていたのですが、こういうことでした。

SOQLでは「SELECT * FROM ~~~」みたいに全件を対象とするアスタリスクが使えないくらいなのでしょうがない。