2012-03-21 6 views
6

ORM関係のシリアル化で最初の2つのレコードしか表示されないという問題があります。残りは[]空白になります。ここでSerializeJSON最初の2レコードのみを返す

は例の関係です:

property name="endorsements" singularname="endorsement" fieldtype="one-to-many" lazy="false" fkcolumn="xxx" cfc="endorsements" remotingfetch="true"; 

JSONを取得する:

policy = entityLoad("policy",1018379202)[1]; 
serializeJSON(policy); 

とJSONの削減一部:

{"id":12321,"endorsements":[{"effectiveDate":"July, 01 2009 00:00:00","active":true}, 
{"effectiveDate":"July, 01 2009 00:00:00","active":true}, 
"","","","","","","","",""]} 

空の文字列は、他でなければなりません関係に記録する。

私は、デバッグファイルを介して、Hibernateクエリがすべてのレコードを返すことを確認しました。また、cfdumpもこれを示しています。

思考?あなたが永続CFCを直列化している場合

+0

は、3番目のレコードの内容について何も異常はありますか?また、別の "ポリシー"レコード(おそらく子供の裏書レコードが異なる)を扱っている場合、まったく同じ問題が発生しますか? –

+0

ポリシーをダンプするか、またはserializeJSON()を呼び出した後に失うだけですか? – baynezy

+0

@JakeFeasel 3番目のレコードで変わったことはありません。私は他のエンティティと同じ問題を抱えています。 –

答えて

4

バグが線を中心に409

でcoldfusion.runtime.JSONUtils.serializeJSON()で発生し、それが渡されたのArrayListにCFCの完全修飾名を追加します再帰的に

cfcの完全修飾名を見つけようとするif()文があり、リストに2回以上出現すると、関数は "{}"で早く残されます。

このif()で何を達成しようとしていたのか分かりません。 循環参照を処理する可能性がありますか?

このバグは、4月に戻ってログインしていた:https://bugbase.adobe.com/index.cfm?event=bug&id=3175667

+0

ありがとうございます。うれしいことはありません – Prometheus

+1

JSONUtilsのコードはcf901とcf10ではかなり異なっていますが、どちらも同じエラーが発生します。最初の2つだけが正しくシリアライズされ、残りは空の構造体です。 –

関連する問題