2011-09-26 101 views
2

在ColdFusion 9中,我正在序列化一個ORM實體。但是,當這樣做時,它缺少關係實體。序列化複雜對象ORM實體處理關係實體

方法ColdFusion用於將複雜對象轉換爲JSON表示法似乎無法在ORM對象上正常工作。在ORM對象上使用serializeJSON()時,不會返回任何屬性爲其他對象數組的屬性!

有沒有人處理過這類問題?你是怎麼處理的呢?

謝謝。

+0

我相信這可能會發生,因爲你有'懶=「真」'你們的關係。我會嘗試將該屬性更改爲false,或者在序列化之前在對象上調用'getAccount()'。讓我知道,如果這有效,我會張貼它作爲答案。 –

+0

嗨丹,我沒有任何問題與getAccount()問題是序列化ORM實體。我需要找到一種方法來迭代 通過實體的所有屬性並構建一個結構。這是我能看到如何解決這個問題的唯一方法。 – Prometheus

+0

這也是一個集合,不只是一個實體 – Prometheus

回答

1

問題已解決!這不是你必須將remotingFetch設置爲true的錯誤!默認情況下,對於具有一對一,一對多,多對一或多對多關係的屬性,它被設置爲false。

+0

很酷。請確保您將此標記爲已接受的答案:) –

+0

會盡力感謝Dan – Prometheus

1

我遇到了類似的問題與遠程方法,並提出了一個遞歸函數,將反省您的CFC和發回你需要的屬性。您可以指定(使用CFC上的屬性)您執行哪些屬性並且不想返回。實際上,您可以通過屬性的「組」來完成此操作,因此您可以將「id」和「name」分配給「compact」組,將CFC中的其餘屬性分配給「full」組。它還會處理序列化嵌套組件(ORM或其他)。另一個很大的優勢是Adobe的序列化方法不會從繼承的對象序列化屬性。所以如果你有一個父對象,你不會在序列化時返回這些屬性。我的toSerializable()方法解決了這個問題。

檢查出來:http://www.justcodefaster.com/blog/2012/07/toserializable-method-for-coldfusion-objects/