使用jparepository获取实体副本

dauxcl2d  于 2021-07-11  发布在  Java
关注(0)|答案(1)|浏览(352)

我有一个这样声明的用户存储库

  1. public interface UserRepository extends JpaRepository<ApplicationUser, Long>

在其中一个服务中,我想获取用户,在返回之前,我想将密码更改为伪文本,但我不想保存该实体。

  1. ApplicationUser user = userRepository.findByUsername(username);
  2. user.setPassword("CENSORED");
  3. return user;

有了实体经理我可以 getReference 还有复印件,但是我怎么用jparepository来做呢?
我要拿这个东西吗 findByUsername() 然后用它的id getOne() 功能?

  1. ApplicationUser user = userRepository.findByUsername(username);
  2. ApplicationUser user2 = userRepository.getOne(user.getId());
  3. user2.setPassword("CENSORED");
  4. return user;
lo8azlld

lo8azlld1#

你可以问自己一个问题:这个方法的用例是什么?
提供一些有关用户的信息(但没有密码)
身份验证(需要密码时)
最有可能的是,您可以从Map字段中省略密码,并提供特殊的方法来验证(哈希和盐渍)密码或更改它。
对于如何创建持久化实体变体的机制,请看一下克隆jpa实体

相关问题