Spring data jpa 之 Query update的坑

jpa默认只有save(Entity)方法,如果数据库中没有记录就新增,如果数据库中有记录就更新记录。

如果要手动添加update(Entity)方法,可以参考这个例子:

  1. @Modifying
  2. @Transactional
    @Query(value = "UPDATE SmallFileEntity s SET s.length = '#{entity.getLength()}' , s.modificationTime = '#{entity.getModificationTime()}', s.accessTime = '#{entity.getAccessTime()}' WHERE s.autoId = '#{entity.getAutoId()}' ", nativeQuery = false)
  3.  
    void updateLengthAndModificationTimeAndAccessTime(SmallFileEntity entity);

上例的重点是将EL表达式用单括号括起来。EL表达式中是可以书写java语句的,在@Query注解中,EL表达式可以取到参数列表中的对象。

 

 

实在不行的话,就nativeQuery = true。

posted @ 2020-11-13 16:01  星空物语之韵  阅读(534)  评论(0编辑  收藏  举报