mybatis-plus比较两个字段,都相等则更新,否则新增
时间: 2023-08-10 09:22:12 浏览: 361
可以使用 MyBatis-Plus 提供的 lambda update 方法来实现这个需求。具体操作如下:
1. 创建实体类,包含需要比较的两个字段。
2. 在 Mapper 中添加一个 lambda update 方法。
```java
public interface MyMapper extends BaseMapper<MyEntity> {
int updateOrUpdate(MyEntity entity);
}
```
3. 在 Service 中调用 lambda update 方法,使用 LambdaUpdateWrapper 来构建更新条件。
```java
@Service
public class MyService {
@Autowired
private MyMapper myMapper;
public void updateOrUpdate(MyEntity entity) {
LambdaUpdateWrapper<MyEntity> updateWrapper = new LambdaUpdateWrapper<MyEntity>()
.eq(MyEntity::getField1, entity.getField1())
.eq(MyEntity::getField2, entity.getField2());
int count = myMapper.update(entity, updateWrapper);
if (count == 0) {
myMapper.insert(entity);
}
}
}
```
4. 在 Controller 中调用 Service 中的 updateOrUpdate 方法。
```java
@RestController
public class MyController {
@Autowired
private MyService myService;
@PostMapping("/entity")
public void updateOrUpdate(@RequestBody MyEntity entity) {
myService.updateOrUpdate(entity);
}
}
```
这样就可以实现比较两个字段,都相等则更新,否则新增的功能了。
阅读全文