Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
如何使用hibernate在Wicket下拉菜单的编辑屏幕中进行ajax查找?_Ajax_Hibernate_Wicket_Open Session In View - Fatal编程技术网

如何使用hibernate在Wicket下拉菜单的编辑屏幕中进行ajax查找?

如何使用hibernate在Wicket下拉菜单的编辑屏幕中进行ajax查找?,ajax,hibernate,wicket,open-session-in-view,Ajax,Hibernate,Wicket,Open Session In View,我有以下结构: 甲级 { B值 } B类 { } 它们之间的关系在Hibernate中是双向映射的,因此我使用b.getListOfA检索所有引用b的A,反之亦然 我有一个Wicket应用程序,它有一个编辑屏幕来编辑类a。这个屏幕是从一个DataTable初始化的,DataRowProvider给它的模型是一个LoadableDetachableModel。当不使用ajax时,我可以得到一个非常好的下拉列表,即标准wicket组件,我通过查询所有B来填充该列表 现在,我正在尝试将DropDown

我有以下结构:

甲级 { B值 }

B类 { }

它们之间的关系在Hibernate中是双向映射的,因此我使用b.getListOfA检索所有引用b的A,反之亦然

我有一个Wicket应用程序,它有一个编辑屏幕来编辑类a。这个屏幕是从一个DataTable初始化的,DataRowProvider给它的模型是一个LoadableDetachableModel。当不使用ajax时,我可以得到一个非常好的下拉列表,即标准wicket组件,我通过查询所有B来填充该列表

现在,我正在尝试将DropDownChoice设置为AutoCompleteTextBox。这一切都很好,我可以选择一个B,它是填写正确的模型中设置的a

但是,当我尝试保存已编辑的实例时,会出现hibernate异常:

org.hibernate.unUniqueObjectException:具有相同标识符值的不同对象已与会话关联

我使用Spring的OpenSessionInView过滤器和saveOrUpdate方法来保存我的对象


有什么提示吗?线索?调试提示?

如何持久化实体;使用saveOrUpdate或update或merge?如果是第一个,请尝试使用“合并”。合并将不会重新附加实体。请参阅使用saveOrUpdate发布。我想我可以使用merge,虽然我真的很想知道这个问题的原因,如果可能的话可以删除它,因为使用merge有点像是“掩盖”而不知道发生了什么。。也许你有更多的洞察力?