我对生成的代理类对象(CGLib 增强 POJO)如何传输到远程客户端并仍然保留其生成 Lazy Init 的能力缺乏了解。例外。
这是否意味着存在某种契约,某种类(代理)的所有传输对象都将再次实例化为代理?客户端从哪里获得这些生成的类?对不起,但我完全不明白。
因为您的远程客户端应用程序现在依赖于 Hibernate。如果您的远程客户端在类路径上没有 Hibernate,您将获得一个NoClassDefFoundError
. 这展示了 Hibernate 的抽象是多么的泄漏。
基本上,不要通过网络传递对象——传递消息(如果你愿意,可以使用它来创建对象)。
代理未初始化。当它们被转移时,它们会失去Session
最初关联的东西。因此,当尝试在远程端初始化它们时,它在逻辑上会失败。
您可以在发送它们之前完全初始化它们,使用Hibernate.initialize(aProxy)
有关更多信息,请查看此答案。