在一个学校项目中,我们正在使用一个 EJB 会话 Bean,这个 EJB 提供简单的服务,例如添加、删除、修改、findAll、findbyId。此类方法是使用 hibernate 4.0 实现的(添加 -> saveOrUpdate,修改 -> saveOrUpdate...)并且可用于客户端
我有两个类:游戏(id、描述、类别)和类别(id、标题)。一个类别也有一组游戏。id 是使用身份生成器生成的。使用的数据库是mysql。
在客户端中,应用程序用户使用表单来填写有关游戏的信息(描述和类别)在控制器中,我使用 findById 方法获取用户选择的类别,然后使用该类别创建一个新游戏并我保存它(使用 SaveOrUpdate)
我注意到的第一个问题:在 EJB 中正确生成了 id,并且修改了传递的游戏,但是在客户端中,游戏没有 id(我猜在客户端和 EJB 之间传递对象不是通过引用)可以有人确认吗?
第二个问题:当游戏保存时,我尝试将此游戏添加到类别集并更新此类别(也使用 saveOrUpdate)。我得到异常 org.hibernate.NonUniqueObjectException: 一个具有相同标识符值的不同对象已与我不理解的会话相关联
谁能帮我 ?