2015-08-30 145 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