spring data jpa 的save()方法
来源:4-2 买家类目-dao(下)
朱小悬
2017-11-23
老师,JpaRepository的save(product)方法做更新操作,更新商品的库存和价格,所以入参的product只 设置了商品的库存和价格,结果调用完save方法后,除了库存和价格的数据变了,其他字段全部被更新成了 null,学生要怎么做,才能动态更新我需要的更新的字段,而其他不需要更新的字段不会被更新到
写回答
2回答
-
廖师兄
2017-11-26
你对这个动态更新理解有误。
要先查询,再更新
OrderMaster orderMaster = repository.findOne("1234567"); orderMaster.setBuyerName("师兄22222333"); OrderMaster result = repository.save(orderMaster);
如果没有加@DynamicUpdate,控制台打印如下
Hibernate: update order_master set buyer_address=?, buyer_name=?, buyer_openid=?, buyer_phone=?, create_time=?, order_amount=?, order_status=?, pay_status=?, update_time=? where order_id=?
如果加了,会是这样
Hibernate: update order_master set buyer_name=? where order_id=?
我猜测你的做法应该是直接new一个对象,然后save它,你想一下,假如属性值是null, 那Jpa怎么知道你想要忽略还是真的设置为null呢
022017-11-27 -
廖师兄
2017-11-24
在你的model类上加@DynamicUpdate
012017-11-25
相似问题