2011-09-26 84 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/