3

我对生成的代理类对象(CGLib 增强 POJO)如何传输到远程客户端并仍然保留其生成 Lazy Init 的能力缺乏了解。例外。

这是否意味着存在某种契约,某种类(代理)的所有传输对象都将再次实例化为代理?客户端从哪里获得这些生成的类?对不起,但我完全不明白。

4

2 回答 2

2

因为您的远程客户端应用程序现在依赖于 Hibernate。如果您的远程客户端在类路径上没有 Hibernate,您将获得一个NoClassDefFoundError. 这展示了 Hibernate 的抽象是多么的泄漏。

基本上,不要通过网络传递对象——传递消息(如果你愿意,可以使用它来创建对象)。

于 2010-04-28T12:43:10.987 回答
1

代理未初始化。当它们被转移时,它们会失去Session最初关联的东西。因此,当尝试在远程端初始化它们时,它在逻辑上会失败。

您可以在发送它们之前完全初始化它们,使用Hibernate.initialize(aProxy)

有关更多信息,请查看此答案

于 2010-04-18T10:29:16.310 回答