Spring Data Jpa的save()方法通过主键是否为空来判断insert或是update操作,但更新方法和以往使用的mybatis-plus存在一定的差异,特别记录处理方法。
java
@Resource
private Dao dao;
/**
* 更新操作
* @param data 前端传入存在更新的字段值的对象
*/
public void update(ItemDo data) {
//数据库查询当前id的数据
ItemDo itemDo = dao.selectOne(data.getId());
//创建一个新的对象
ItemDo updateData = new ItemDo();
//复制所有字段的值给新的对象
BeanUtil.copyProperties(updateData, itemDo);
//判断哪些字段需要更新并赋值,实现动态更新
if(StrUtil.isNotEmpty(data.getDivide())){
updateData.setDivide(data.getDivide());
}
if(StrUtil.isNotEmpty(data.getTitle())){
updateData.setTitle(data.getTitle());
}
//更新操作
dao.save(updateData);
}