spring-data-jpa执行save的更新操作

宿_ 2017-10-14 04:28:27
spring-data-jpa执行save的更新操作,将实体类传入,怎么忽略实体类中为null的参数进行更新呢?

比如: student表
id name age
1 张三 21

现在执行save(student)的时候,student中id=1,age=20,那么执行成功后就会将数据库中原本这条记录的name修改成null。
结果就变成了:
id name age
1 20
请问怎么样才能让jpa执行save操作的时候忽略student中为null的值,不参与更新呢?
让结果变成:
id name age
1 张三 20
...全文
8756 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiongdejun 2018-02-02
  • 打赏
  • 举报
回复
正确的方法我不知道有没有,但是咱们可以运用其他手段给它过滤掉。可以用到阿里开发的fastjson里的方法把为null的字段过滤掉生成一个不包含为nul的字段l的对象。 不过这样一来。部分代码可能要做相应的修改。具体方法可以去百度找相关知识
Adrian-fd 2017-12-11
  • 打赏
  • 举报
回复
spring boot data jpa @DynamicUpdate 已经失效了,老外说有bug
zhongyuan332 2017-10-26
  • 打赏
  • 举报
回复
直接执行update方法呢? 我记得update是先查询 如果存在该条记录会执行update 如果没有该记录 执行save方法
宿_ 2017-10-26
  • 打赏
  • 举报
回复
引用 2楼Zkboger 的回复:
你可以使用saveOrUpdate,前提是你的id不能是自动生成的
可是jpa现在已经没有saveorupdate方法了呀,只剩下个save方法
206liu 2017-10-26
  • 打赏
  • 举报
回复
动态更新,在modle中加上注解:@DynamicUpdate,可以达到效果动态更新bean中不为空的字段
爱盆小进进 2017-10-16
  • 打赏
  • 举报
回复
看二楼说明!!
Zkboger 2017-10-16
  • 打赏
  • 举报
回复
你可以使用saveOrUpdate,前提是你的id不能是自动生成的
fsw15071046574 2017-10-16
  • 打赏
  • 举报
回复
JPA执行更新操作的时候,一般都是先根据id去数据库中查找到那条数据再把你更新了的值set进去,最后再save吧

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧