spring数据如何jpa repository.save只做更新

Awa*_*ing 17 spring-data-jpa

如何spring-data-jpa repository.save只做update如果主键未发现但不能创建新的.
目前,如果找不到,repository.save()将在我的数据库中创建一条now记录

Man*_*ari 24

Repository.save()是一种双重用途的插入更新方法

Spring使用两种机制来决定是否必须在实体上使用InsertUpdate:

  1. 默认情况下,Spring检查实体的Id-Property(@Id),以确定实体是否是新的.如果identifier属性为null,则将实体视为new,否则不视为new.
  2. 另一种更好地控制这种方法的方法是实施 Persistable.对于实现的实体Persistable,Spring将调用isNew(…)方法来确定它是否必须是InsertedUpdated.

  • 你能告诉我如何实施吗? (2认同)
  • 使用findOne,然后使用带ID的保存. (2认同)
  • 我该如何做为原子动作?我的意思是如何找到一个并进行更新(使用save())可以保证线程安全? (2认同)