Springboot Jpa的更新操作
程序员文章站
2022-05-02 09:39:48
...
取代update的save
springboot Jpa里面没有update方法,使用save来做更新操作
具体来讲,调用save方法时,若对象存在则更新,若不存在则保存
如何实现更新
如下操作是不能更新的,会保存两条记录
User user = new User("idea","1",new Date(),null);
userService.save(user);
user.setModifiedTime(new Date());
userService.save(user);
正确的更新操作,如下:
//通过从repository查询出来的对象更新,才会成功
public void save(User user){
User user1 = userRepository.findByUsername(user.getUsername());
if ( user1!= null) {
user1.setModifiedTime(new Date());
}else{
user1 = new User();
user1.setUsername(user.getUsername());
user1.setPassword(user.getPassword());
user1.setCreateTime(new Date());
}
userRepository.save(user1);
}
如果使用@Transactional注解,更新时不用调用save方法
@Transactional(rollbackFor = Exception.class)
public void save(User user){
User user1 = userRepository.findByUsername(user.getUsername());
if ( user1!= null) {
user1.setModifiedTime(new Date());
}else{
user1 = new User();
user1.setUsername(user.getUsername());
user1.setPassword(user.getPassword());
user1.setCreateTime(new Date());
userRepository.save(user1);
}
}
上一篇: 早睡要从改善睡眠开始
下一篇: 干货分享:女生表白被拒绝怎么办?
推荐阅读
-
mysql5.7更新操作报异常thisisincompatiblewithsql_mode=only_full_group_by的原因和解决办法
-
SpringBoot实现ORM操作MySQL的几种方法
-
SpringBoot实现ORM操作MySQL的几种方法
-
SpringBoot 防止接口恶意多次请求的操作
-
详解SpringBoot是如何整合JPA的
-
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
-
【原】无脑操作:IDEA + maven + Shiro + SpringBoot + JPA + Thymeleaf实现基础认证权限
-
springboot 之jpa高级查询操作
-
SpringBoot 设置传入参数非必要的操作
-
SpringBoot在yml配置文件中配置druid的操作