最近在工作中使用JPA进行数据库数据的更新,现在总结有两种思路:
1、当需要更改的字段比较多时,可以将需要更改的字段封装在实体类当中,然后不需要更改的字段通过findone找到对应数据也封装到此实体类当中,然后调用saveandflush方法进行update。如果不将不需要更改的字段封装到实体类中save的话,会将数据库中的对应字段置空。
2、当需要更改的字段少时,例如仅仅对单个时间或者状态进行更新,可以在对应的repository添加update方法
@Transactional
@Query(value=“UPDATE xxEntity xe SET xe.data= :date WHERE xe.id= :id”)
int update(@Param(“date”)Date date,@Param(“id”)int id);
注意:xxEntity对应实体类的名字