Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java EJB会话Bean/客户端休眠会话交互?_Java_Hibernate_Jakarta Ee_Servlets_Ejb - Fatal编程技术网

Java EJB会话Bean/客户端休眠会话交互?

Java EJB会话Bean/客户端休眠会话交互?,java,hibernate,jakarta-ee,servlets,ejb,Java,Hibernate,Jakarta Ee,Servlets,Ejb,在一个学校项目中,我们使用一个EJB会话Bean, 这个EJB提供简单的服务,如添加、删除、修改、findAll、findbyId。这些方法是使用hibernate 4.0实现的(添加->保存或更新,修改->保存或更新…),可供客户端使用 我有两个类:游戏(id,描述,类别)和类别(id,标题)。 一个类别也有一套游戏。 ID是使用标识生成器生成的。使用的数据库是mysql 在客户机中 应用程序用户使用表单在控制器中填写有关游戏(描述和类别)的信息。我使用findById方法获取用户选择的类别,

在一个学校项目中,我们使用一个EJB会话Bean, 这个EJB提供简单的服务,如添加、删除、修改、findAll、findbyId。这些方法是使用hibernate 4.0实现的(添加->保存或更新,修改->保存或更新…),可供客户端使用

我有两个类:游戏(id,描述,类别)和类别(id,标题)。 一个类别也有一套游戏。 ID是使用标识生成器生成的。使用的数据库是mysql

在客户机中 应用程序用户使用表单在控制器中填写有关游戏(描述和类别)的信息。我使用findById方法获取用户选择的类别,然后我使用此类别创建一个新游戏并保存它(使用SaveOrUpdate)

我注意到的第一个问题是:在EJB中正确生成了id,并修改了传递的游戏,但在客户端,游戏没有id(我猜在客户端和EJB之间传递对象不是通过引用),有人能确认吗

第二个问题:当游戏保存时,我尝试将此游戏添加到类别集合中并更新此类别(同时使用saveOrUpdate)。我得到了异常org.hibernate.unUniqueObjectException: 具有相同标识符值的不同对象已与会话关联 我不明白


有人能帮我吗?

对于第一个问题,听起来好像ID没有被发送回客户端,或者没有存储在控制器中。 您可以通过将其添加到URL将其发送回客户端,即,在客户端调用add“”的返回中,id=“+newGameId

这样,您就可以使用id字段的setter和getter将值填充回控制器中

long id;

你能发一些代码吗?没有它我真的帮不了你。