我有一个springboot2.3应用程序。我使用springjpa对mysql进行查询。我还利用了redis。
@Cacheable(cacheNames = "documents#chartrevenuebymonthperuser")
@Transactional(readOnly = true)
@Query("Here there is my query")
List<Tuple> chartRevenueByMonthPerUser(@Param("from") LocalDate from, @Param("until") LocalDate until, @Nullable @Param("storeId") Long storeId);
我更喜欢 List<Tuple>
而不是 List<Object[]>
但不幸的是redis说元组是不可序列化的。元组来自包 javax.persistence
您有什么好的建议来利用tuple允许redis缓存结果吗?
1条答案
按热度按时间9w11ddsr1#
redis缓存可以配置为使用其他序列化程序/反序列化程序。
元组接口不提供任何getter/setter等,所以序列化失败,尽管您可以定义应该实现元组接口的元组。
此接口中的某些方法尚未实现,如果您认为需要,可以实现它们。
一旦实现了元组和重序列化程序,就可以使用它们来配置缓存。
这就是你要做的一切。