天天看点

SpringBoot jpa update

今天在写东西的时候,用到springBoot,可是当想更新数据的时候,我想很多人和我一样,第一想到的就是  User update(User    u);

很明显我失败了,说是没有User这个实体,很明显是因为在他的解析方法中不包含这一种,于是我又想到了这个

@Modifying
    @Query("update User u set u.password = :password where u.username = :username")
           
可是这样的话我没办法直接传对象,必须的一个一个属性的传,这当然不是我想要的,我尝试了这样
@Modifying
    @Query("update User u set  :condition")
           

我想把condition作为参数传进去,结果也失败了。

然后偶然的一次机会我才发现,jpa自动生成的save方法会先执行查询方法,如果无就insert into,如果有就 update,所以其实想执行update,直接执行

User save(User  user);,这样就可以得到update的效果啦

继续阅读