SpringData JPA更新操作踩坑

使用springdata jpa更新操作时发现当传入的属性值为Null竟然也更新,这就会导致原本没有打算更新的属性值也更新成了null。

出现这种情况的原因是因为jpa它不知道你传入一个参数为null值是想它更新还是不更新,所以它默认是更新的。

网上的解决方案大致有两种,一种是将原本的对象从数据库中先查出来然后使用BeanUtils.copyProperties(数据源,目标源,过滤操作);将空值属性过滤掉之后再进行保存。但是对于我今天操作的数据来说有点大材小用,我是直接将原本的数据查出来然后set进要更新的对象中。

还有一种方案是添加注解@DynamicUpdate,不过这种方案我并没有做成功,留个坑以后再研究。

你可能感兴趣的:(Java)