我仍在寻找Spring Data JPA中的更新方法,以更新关系数据库中保存的给定对象。 我只发现强制通过@Query注释(与@Modifying相比)指定某种UPDATE查询的解决方案,例如:
@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 Data JPA构建这样的更新方法?如何进行注释?
谢谢!
(T)
@Transactional
中,选择所有实体后进行修改就足够了,不需要显式调用.save()
或.saveAll()
,除非你有任何已分离的实体(例如,从数据库中未选择或手动分离的实体)。事务结束时会更新每个实体。 - buræquete