我仍在寻找 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);
为了构建查询,我还必须传递单个参数而不是整个对象。但这正是我想要做的(传递整个对象)。
所以,我试图找到这样的方法:
public void update(Object obj);
是否可以基于Spring Data JPA构建这样的更新方法?又该如何注释呢?
谢谢你!
如果目标是修改实体,则不需要任何更新方法。您从数据库获取对象,修改它,JPA 会自动保存它:
User u = repository.findOne(id);
u.setFirstName("new first name");
u.setLastName("new last name");
如果您有一个分离的实体并想要合并它,那么使用save()
的方法CrudRepository
:
User attachedUser = repository.save(detachedUser);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)