我有一个这样声明的用户存储库
public interface UserRepository extends JpaRepository<ApplicationUser, Long>
在其中一个服务中,我想获取用户,在返回之前,我想将密码更改为伪文本,但我不想保存该实体。
ApplicationUser user = userRepository.findByUsername(username);
user.setPassword("CENSORED");
return user;
有了实体经理我可以 getReference
还有复印件,但是我怎么用jparepository来做呢?
我要拿这个东西吗 findByUsername()
然后用它的id getOne()
功能?
ApplicationUser user = userRepository.findByUsername(username);
ApplicationUser user2 = userRepository.getOne(user.getId());
user2.setPassword("CENSORED");
return user;
1条答案
按热度按时间lo8azlld1#
你可以问自己一个问题:这个方法的用例是什么?
提供一些有关用户的信息(但没有密码)
身份验证(需要密码时)
最有可能的是,您可以从Map字段中省略密码,并提供特殊的方法来验证(哈希和盐渍)密码或更改它。
对于如何创建持久化实体变体的机制,请看一下克隆jpa实体