我正在使用我需要使用的 Visual Paradigm 开发一个 Java 项目。Visual Paradigm 正在使用 Hibernate。在我添加 Genady RMI 之前,我的项目运行良好。我还需要使用 RMI。
在服务器端,我有 MainDb,它管理对数据库的所有查询,在客户端,我有实现 RMI Remote 的 UserWindow 和 AdminWindow 类。这两个类通过RMI获取对象MainDb。
当我运行服务器和客户端时,我遇到了与延迟初始化相关的异常,错误为“没有会话或会话已关闭”:
failed to lazily initialize a collection of role: dcl.UsuarioRegistrado.ORM_TieneVideosFavoritos, no session or session was closed.
据我所知,Hibernate 使用的是不同的会话,从该会话中创建了 dcl.UsuarioRegistrado 对象。问题是我没有管理会话,因为 PersistentManager 类只提供 getSession()。PersistentManager 类是 VisualParadigm 提供的用于管理 Hibernate 的类。
我尝试将所有实体配置为lazy="false",但结果更糟,因为某些实体的属性未正确加载。例如,一个对象“Topic”被加载,字符串属性“TopicName”为空。
那么,我能做些什么来保持相同的会话呢?
在此先感谢,我很抱歉,但我的英语很差。我很难用英语解释这种情况,所以再次感谢。