繁体   English   中英

Spring Data JPA更新方法

[英]Spring Data JPA Update Method

我仍然在寻找Spring的Data JPA中的更新方法来更新在关系数据库中持久存在的给定Object 我只找到了解决方案,我不得不通过@Query注释指定某种UPDATE查询(与@Modifying相比),例如:

@Modifying
@Query("UPDATE User u SET u.firstname = ?1, u.lastname = ?2 WHERE u.id = ?3")
public void update(String firstname, String lastname, int id);

为了构建Query,我还必须传递单个参数而不是整个对象 但这正是我想做的事情(传递整个对象)。

所以,我想要找到的是这样的方法:

public void update(Object obj);

是否可以基于Spring Data JPA构建这样的更新方法? 它必须如何注释?

谢谢!

如果目标是修改实体,则不需要任何更新方法。 您从数据库中获取对象,修改它,JPA自动保存它:

User u = repository.findOne(id);
u.setFirstName("new first name");
u.setLastName("new last name");

如果你有一个分离的实体并想要合并它,那么使用CrudRepository的save()方法:

User attachedUser = repository.save(detachedUser);

如果要更新实体,则不需要JPQL查询(可选)。 您可以直接使用(旧版本)findOne或(新版本)findById来访问数据并进行必要的修改

此处批准(实体)已更新。

Optional<User> user= Repository.findById(id);
Registration reg = reg.get();       
reg.setApproved("yes");
userRepo.save(reg);

就是这样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM