Spring @Cacheable映射ResultList

时间:2017-08-03 10:10:39

标签: java spring caching

用于缓存的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。

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

由于

1 个答案:

答案 0 :(得分:0)

确切地说,在您的服务中使用@CachePut以预加载缓存。使用@CachePut注释的方法的返回值始终放在缓存中。