簡體   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