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