SSH 500错误 java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity

本文探讨了在软件开发过程中因未提供无参构造函数而导致的错误现象,并指出这一问题不仅限于JSP参数传递中。


关于这个错误,本人发现除了网上说的在jsp里传参时不能正确的使用外,在设计对象时没有写无参构造函数也能引起相同的错误。

Java中,出现 'attempt to create delete event with null entity' 异常通常是在删除操作时尝试删除一个不存在的实体所导致,以下是不同场景下的解决方案: ### Spring和Hibernate整合场景 在使用JUnit4测试删除时,确保要删除的实体不为空。示例代码如下: ```java @Test public void deleteUser() { UserService us = (UserService) ac.getBean("userService"); User user = null; if ((user = us.get(1)) != null) { us.delete(user); } } ``` 此方法通过先检查 `us.get(1)` 返回的实体是否为 `null`,若不为 `null` 再执行删除操作,避免了删除 `null` 实体的情况,从而解决该异常 [^1]。 ### Struts和Spring连续删除场景 当出现删除一个对象后按F5刷新报错的情况,问题往往在于删除记录之后返回的记录集没有刷新,删除的实体在结果集中没有清除,刷新页面时会重复提交已删除的记录。解决方法是在转到新界面时刷新界面,只需修改Struts.xml中delete action的配置,在delete action的 `<forward />` 中加入一个参数 `redirect="true"`,因为 `redirect` 默认值是 `false` [^2]。 ### Struts2批量删除场景 在DeptAction中进行批量删除时,由于Struts2会自动封装String类型的具有同名框的一组值,所以要正确分割ID。示例代码如下: ```java public String delete() throws Exception { // 因为struct2会自动封装String类型的具有同名框的一组值,所以要分割开来 String ids[] = model.getId().split(", "); // 这里要用逗号加空格,否则只有逗号会报错,这是struct2的自动封装,是逗号加空格封装;易错 // 调用业务方法,实现批量删除 deptService.delete(Dept.class, ids); return "alist"; } ``` 正确分割ID后再进行批量删除操作,可避免因ID处理不当导致删除不存在记录的问题 [^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值