天天看点

Spring Data JPA: 更新字段采坑记

JPA进行数据库数据的更新,现在总结有以下思路:

  • 当需要更改的字段比较多时,可以将需要更改的字段封装在实体类当中,然后不需要更改的字段通过findone找到对应数据也封装到此实体类当中,然后调用saveandflush方法进行update。如果不将不需要更改的字段封装到实体类中save的话,会将数据库中的对应字段置空。
  • 当需要更改的字段少时,例如仅仅对单个时间或者状态进行更新,可以在对应的repository添加update方法
    Spring Data JPA: 更新字段采坑记

    三个注解缺一不可!!!

    缺少@Modifying.报错如下!

org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML
           

缺少@Transactional,报错如下

nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query