2012-03-21 2 views
6

ORM 관계를 serialize하는 경우 처음 두 레코드 만 표시되는 문제가 있습니다. 나머지는 단지 [] 비어 있습니다.SerializeJSON 처음 두 레코드 만 반환

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를 serialising하는 경우

+0

있습니까? 또한 다른 "정책"레코드 (아마도 다른 하위 "보증"레코드가 있음)를 다루는 경우에도 똑같은 문제가 계속 발생합니까? (더 많은 레코드가 있어야 할 때 두 개의 레코드 만)? –

+0

정책을 덤프하면 serializeJSON()을 호출 한 후에 모든 레코드가 손실됩니까? – baynezy

+0

@JakeFeasel 세 번째 레코드에서 이상한 점은 없으며 다른 엔티티에서도 이와 동일한 문제가 발생합니다. –

답변

4

버그 라인 주변에 409

에서 coldfusion.runtime.JSONUtils.serializeJSON()에서 발생, 그것은 전달되는 ArrayList에,에 CFC의 완전한 이름을 추가합니다 재귀 적으로.

cfc의 정규화 된 이름을 찾는 if() 문이 있으며 목록에 두 번 이상 나타나면 "{}"로 초기에 함수를 남깁니다.

그들이 if()를 사용하여 수행하려고 시도한 것이 확실하지 않습니다. 순환 참조를 처리 할 가능성이 있습니까?

이 버그

4 월에 다시 로그인 한 : 세 번째 레코드의 내용에 대해 특별한 아무것도 https://bugbase.adobe.com/index.cfm?event=bug&id=3175667

+0

감사합니다. 다행이 아니다. – Prometheus

+1

JSONUtils의 코드가 cf901과 cf10에서 상당히 다르지만 두 코드 모두 동일한 오류가 발생합니다. 첫 번째 2 개만 올바르게 serialize되고 나머지는 빈 struct입니다. –

관련 문제