JPA -Java Spring-更新条目 - 编辑用户



我是JPA的新手 - 我有此查找,可以在登录表上找到用户。现在,如果我收到新信息(例如用户已经更改了密码),如何我更新条目?


所以我找到了用户 - 通过他们的电子邮件地址说。

TblLogin acc = tblLoginRepository.findByEmail(email);

我已经看到了调用" getTransaction()"的方法

http://www.objectdb.com/java/jpa/persistence/update

这样的东西?

  tblLoginRepository.getTransaction().begin();
  acc.setPassword("test2");
  tblLoginRepository.getTransaction().commit();

,但是我只是做这样的事情 - 就是这样吗?

   TblLogin acc = tblLoginRepository.findByEmail(email);
   acc.setPassword("newpassword");

^就是 - 没有其他 - 条目已更新?

对于用户注册时 - 我做一个saveandflush?我不必做任何其他事情来编辑条目?

        TblLogin newAcc = tblLoginRepository.saveAndFlush(new TblLogin(
                    email,
                    password,
                    pin
                ));

使用JPA时术语的使用量很大。您应该对Entity, EntityManager, Session, Transaction等基本部分有基本的理解。与Spring-data-jpa一起启动会对您有所帮助。例如,使用@Transactional确保使用此注释的装饰方法在交易中运行。

您还应该查看春季启动 - 纯粹会议问题。使用Spring-boot的存储库,您可以拥有类似的东西:

TblLogin acc = tblLoginRepository.findByEmail(email);
acc.setPassword("newpassword");
tblLoginRepository.save(acc);

上述save()的实现看起来像:

public <S extends T> S save(S entity) {
    if (entityInformation.isNew(entity)) {
        em.persist(entity);
        return entity;
    } else {
        return em.merge(entity);
    }
}

下一步是学习em.persist()em.flush()之间的差异。

我希望这个答案对您有帮助!

最新更新