我不了解生成的代理类对象(CGLib增强型POJO)如何传输到远程客户端,并仍然保留其生成Lazy Init的能力。异常。
这是否意味着存在某种类型的契约,某种类(代理)的所有转移对象将再次作为代理重新实例化?客户端在哪里获取这些生成的类?对不起,但我完全不明白。
答案 0 :(得分:2)
因为您的远程客户端应用程序现在依赖于Hibernate。如果您的远程客户端在类路径上没有Hibernate,您将获得NoClassDefFoundError
。这说明了抽象是如何泄漏Hibernate的。
基本上,不要通过网络传递对象 - 传递消息(如果你愿意,可以用它来创建对象)。
答案 1 :(得分:1)
代理未初始化。当他们被转移时,他们会失去他们最初关联的Session
。因此,当尝试在远程端初始化它们时,它在逻辑上失败。
您可以使用Hibernate.initialize(aProxy)
有关详细信息,请查看this answer。