控制台报错:
ERROR org.hibernate.internal.SessionImpl - HHH000346: Error during managed flush [Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1]
由于存在隐藏表单进行回显,导致提交时value不是Null,而是"",而我设置的主键生成策略是uuid,所以无法赋值导致错误,解决方法是隐藏表单外面添加了if判断!
<!-- 隐藏域回显当前编辑的拜访记录id -->
<s:if test="#saleVisit.visit_id!=''"><input type="hidden" name="visit_id" value="<s:property value="#saleVisit.visit_id" />" /></s:if>
改自于:https://blog.youkuaiyun.com/codingup/article/details/80722421

本文详细解析了一个在Struts框架中使用Hibernate遇到的批量更新行数异常错误,具体表现为错误信息“BatchUpdater返回意外的行数从更新[0];实际行数:0;预期:1”。此问题源于隐藏表单回显导致的提交值为而非Null,与主键生成策略冲突。通过在隐藏表单外添加条件判断,确保只有在visit_id非空时才进行回显,从而解决了这一问题。
1178

被折叠的 条评论
为什么被折叠?



