jpa 用 save 更新时,如果直接 save(entity)的话,并不会忽略掉 entity 中 null 字段,就导致数据库原有的字段被覆盖。
问题我明白为什么,很难判断开发者需不需要更新 null 值。为啥 jpa 一直不加注解或者配置可以让开发者选择性忽略某些 null 字段?
stackoverflow 上有相关问题,回答都是要先查出来,手动 set 修改字段,然后再 save 一下。这样会有点复杂。entity 要加 @DynamicUpdate 注解(如果不需要更新全部字段的话),字段多的 entity 还需要用 BeanUtils 的工具,并且要手动过滤掉值为 null 的字段。没有别的好点的办法嘛?
ps: 题外话,用了几天感觉 jpa 学习成本比 mybatis 高好多。。不过写注解比写 sql 舒服多了
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.