@Override
@Cacheable(value = "user-cache", key = "#login", unless = "#result == null")
public User findUserByLogin(final String login)
{
return em.find(User.class, login);
}
如果我将密码设置为空,例如如下所示。我看到的缓存值也被相应地修改,因为在下一次调用中缓存被命中并且那里的密码设置为 NULL。这是正确的行为吗?如果我想修改该对象,是否必须在每次检索后创建一个新对象。我说的是修改不是在数据库中而是在服务级别上进行修改。
public User getUserByLogin(final String login)
{
final User user = userRepository.findUserByLogin(login);
user.setPassword(null);
return user;
}