mybatisplus3.3.0重写saveorupdatebatch方法不根据主键id判断更新添加
时间: 2024-09-28 19:12:01 浏览: 155
MyBatisPlus是一个基于MyBatis的ORM框架增强工具,它在MyBatis的基础上提供了更便捷、智能的操作方式。在3.3.0版本中,如果你想自定义`saveOrUpdateBatch`方法的行为,使其不依赖于实体的主键ID自动判断是更新还是新增,你可以创建一个自定义的Mapper接口,并重写这个方法。
```java
public interface YourModelMapper {
/**
* 自定义保存或更新批量操作,忽略主键判断
* @param entities 需要操作的数据列表
*/
int saveOrUpdateBatchWithoutPKCheck(List<YourEntity> entities);
}
```
然后在实际的Service或者Repository层中注入这个自定义Mapper并使用:
```java
@Service
public class YourService {
private final YourModelMapper yourModelMapper;
public YourService(YourModelMapper yourModelMapper) {
this.yourModelMapper = yourModelMapper;
}
public void performCustomSaveOrUpdate(List<YourEntity> entities) {
yourModelMapper.saveOrUpdateBatchWithoutPKCheck(entities);
}
}
```
在这个自定义方法里,你可以根据业务需求来判断每个实体是否需要更新或插入。比如检查某个字段的变化,如果满足更新条件则调用`update`方法,否则调用`insert`方法。
阅读全文