java - 如何在创建新条目时更新 java spring 框架中的缓存

标签 java spring ehcache

创建用户函数:

@Autowired private org.springframework.cache.CacheManager cacheManager;
public boolean createUser(Users user,HttpSession session) {
    System.out.println("cache update changed");
    Cache c = cacheManager.getCache("defaultCache");
    if (c != null) {
        System.out.println("hello");
        c.put("",user.getUsername()); 
        // this code is not working 
    }

    //BeanPropertySqlParameterSource params = new BeanPropertySqlParameterSource(user);

    MapSqlParameterSource params=new MapSqlParameterSource();
    params.addValue("username", user.getUsername());
    params.addValue("user_session_id", session.getId());
    java.util.Date today = new java.util.Date();
    //params.addValue("message_time",new java.sql.Timestamp(today.getTime()));

    params.addValue("user_last_activity_time", new java.sql.Timestamp(today.getTime()));

    jdbc.update("insert into users (username,user_session_id,user_last_activity_time) values (:username,:user_session_id,:user_last_activity_time)", params);// == 1;

    //c.clear();
    //return user;
    return true;
}

获取用户函数:

@Cacheable(value="defaultCache")
//@CachePut(value="defaultCache")
public List<Users> getOnlineUsers() {
    System.out.println("DB Query");
    return jdbc.query(sql, new RowMapper<Users>() {
        @Override
        public Users mapRow(ResultSet rs, int rowNumb) throws SQLException {
            Users user = new Users();
            user.setId(rs.getInt("id"));
            user.setUsername(rs.getString("username"));
            return user;
        }
    });
}

请帮助我如何在创建新用户时更新缓存,以便当我从 List<Users> getOnlineUsers() 获取用户时jquery json 函数的功能我应该得到更新的缓存。谢谢

最佳答案

如果你想使用@CacheEvict 清除整个缓存那么你可以在注解参数中使用allEntries = true

@CacheEvict(value="defaultCache",  allEntries = true) 
public boolean createUser(Users user, HttpSession session) { ....

关于java - 如何在创建新条目时更新 java spring 框架中的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38981270/

相关文章:

java - ehcache - 有什么解决方案可以访问过期的元素内容吗?

java - 从一系列数字生成概率

java - 在导出时合并多个 jasper 报告时如何重新计算页码?

java - 您如何将 Java 字符输入 MYSQL 数据库,然后再检索它们?

spring - 使用 RestTemplate.postForLocation 的文件上传进度条

java - 返回 Java 8 流的 Spring 存储库方法不会关闭 JDBC 连接

java - JUnit 5 测试中模拟 EhCache NullPointerException

java - 使用jmock如何重用参数

spring - ehCache 有自动刷新的选项吗?

java - 用java加载缓存中的数据