我是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()
之间的差异。
我希望这个答案对您有帮助!