2015-08-30 104 views
5

我仍在寻找Spring的Data JPA中的更新方法,以更新给定的关系数据库中的对象。我才发现,在我被迫通过@Query批注指定某种UPDATE查询(与@Modifying比较)的解决方案,例如:弹簧数据JPA更新方法

@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); 

用于构建查询,我也有通过单参数代替整个对象。但这正是我想要做的(传递整个对象)。

所以,我尝试找到是这样的方法:

public void update(Object obj); 

是否有可能建立基于Spring的数据JPA这样的更新方法?它如何注释?

谢谢!

回答

6

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

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

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

User attachedUser = repository.save(detachedUser); 
+0

哇,就这么简单!非常感谢你帮助我! – MaxWell