如何使用spring CrudRepository更新属性?

时间:2016-04-18 11:56:36

标签: java spring spring-data-jpa

如何在春季update创建CurdRepository方法?

类似的东西:

interface PersonRepository extends CrudRepository<PersonEntity> {
   //update ... set age =: age where name =: name
   boolean setAgeByName(age, name);
}

1 个答案:

答案 0 :(得分:1)

如果你问我:不要使用此类查询。那是因为您的二级缓存被消除了,并且您遇到了一些性能问题(您的应用程序会稍慢)。

顺便说一下,你想要做的过程实际上是:

  • 从数据库加载实体
  • 更改已加载对象的属性(通过setter方法)
  • 您将实体保存到数据库(这在事务结束时自动完成,因此您无需明确调用PartnerRepository.save(entity)

如果您想使用查询,我建议您按照问题中提到的那样编写查询:

@Modifying
@Query("update Person p set p.age = :age where p.name = :name")
int setAgeByName(@Param("age") int age, @Param("name") String name);

您可以回复已修改的条目数。