【问题标题】:Spring @Cacheable Map a ResultListSpring @Cacheable 映射一个 ResultList
【发布时间】:2018-01-10 21:06:40
【问题描述】:

spring-guides 中的缓存示例展示了如何检索一个元素并将其存储在缓存中

@Override
@Cacheable("books")
public Book getByIsbn(String isbn) {
    simulateSlowService();
    return new Book(isbn, "Some book");
}

我想查询数据库一次获取所有元素,然后在启动时(PostConstruct)将它们存储为参考缓存。

    public Collection<Book> getAllBooks() {
    return this.entityManager.createNamedQuery(Book.all, Book.class).getResultList();
}

你可以直接存储地图吗?我应该调用 getAllBooks() 方法并在 BookService 中使用 @CachePut。

有人可以举个例子/最佳实践吗?

谢谢

【问题讨论】:

标签: java spring caching


【解决方案1】:

没错,在你的服务中使用@CachePut来预加载缓存。带有@CachePut 注解的方法的返回值总是放在缓存中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    相关资源
    最近更新 更多