【Salesforce】SObject型のcloneについて調べた

【Salesforce】SObject型のcloneについて調べた

SalesforceのApexでSObject型というのがありますね。

SObjectを複製するメソッドなのですが、たまに引数を忘れるのでメモです。

clone項目について確認しておきましょう。

https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_methods_system_sobject.htm

引数 型 説明 デフォルト
preserveId Boolean 元のオブジェクトのIDを保持するか false
isDeepClone Boolean 各フィールドの値を完全にコピーするか、参照のみか false
preserveReadonlyTimestamps Boolean 参照のみのタイムスタンプ項目を重複で保持するか削除するか false
preserveAutonumber Boolean 自動採番項目をコピーするか false

すべて省略可能な引数なんですね。

コピーしたSObjectの値を変更しないのであれば、引数も必要ないようです。

たまにcloneの引数が分からなくなったりしますが、「clone(false, true)」の形で使用されているのを一番よく見る気がします。

逆に、第三引数や第四引数は見たことがありません。

あまり使われないのでしょうか。。

注意が必要なのは、取得していない項目については値が設定されないことでしょうか。

cloneするオブジェクトの項目が増えた際には、必要であればApex側の修正も必要になりますね。

No comments.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です