gpt4 book ai didi

java - 修改对象改变Ehcache值

转载 作者:行者123 更新时间:2023-11-30 03:43:44 24 4
gpt4 key购买 nike

    @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;
}

最佳答案

在 Ehcache 中使用堆上层时,键和值是通过引用传递的。因此对对象的任何修改都会反射(reflect)在缓存中。

关于java - 修改对象改变Ehcache值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26245019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com