spring mvc + spring data jpa 如何优雅的更新数据
遇到的问题
前台传过来的参数非常的多,而且是和model相对应的,于是就采用以下方法,让springmvc自动赋值到model中去:
java
@RequestMapping(value = "xxx") public String xxx(Member member){ }
赋值好后,由于有些数据不必更新,就在前台没有传进来(在member中就为null),如果这样直接更新,那么会直接把那些为null的属性 在数据库中也设为null。
在网上查了下资料,在modle中加上注解:
@DynamicUpdate
,可以达到效果动态更新bean中不为空的字段,但实际用起来并不行。后来了解到必须首先将数据load出来,然后再去对load出来的属性setXXX的操作再更新才行。
自己想到的解决办法
用反射去做,首先先从数据库中把要更新的对象load出来,然后再用反射去读取springmvc给自动赋值好的对象,把不为空的set到load出来的.
不知还有没有其他更优雅的解决办法
patrik
10 years, 4 months ago