SpringBoot中緩存@Cacheable出錯

SpringBoot中使用@Cacheable:

錯誤代碼:

@Cacheable(value = "FrontAdvertiseVOList", keyGenerator = "cacheKey")
@Override
public List<FrontAdvertiseVO> getFrontAdvertiseVOList(Integer count) {return this.list(Wrappers.<Advertise>lambdaQuery().select(Advertise::getPic, Advertise::getUrl).eq(Advertise::getState, 1).orderByDesc(Advertise::getPriority).last("limit " + count)).stream().map(advertise -> new FrontAdvertiseVO(advertise.getPic(), advertise.getUrl())).toList();   // ----------- ①
}

運行程序,出錯:

org.springframework.data.redis.serializer.SerializationException: Could not read JSON:Unexpected token (START_OBJECT), expected VALUE_STRING: need String, Number of Boolean value that contains type id (for subtype of java.lang.Object)at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2] 

解決方案

只需要將編號①處的代碼修改為:

.collect(Collectors.toList());

原理

  • collect(Collectors.toList())?返回的數據:
    在這里插入圖片描述
  • ?toList()?返回的數據:
    在這里插入圖片描述

collect(Collectors.toList()) 和 toList() 的主要區別在于返回的列表類型和可變性:

  • collect(Collectors.toList())?:返回的是一個普通的 ArrayList ,因此可以進行添加、刪除和修改操作?
  • ?toList()?:返回的是通過對原始數組創建一個不可修改的列表。一旦創建,就不能對其進行添加、刪除或修改操作?

?使用場景?:

  • ?toList()?:適用于不需要對列表進行修改的場景,如從數據庫查詢數據等,因為它返回的是不可變列表,可以防止數據被意外修改?
  • ?collect(Collectors.toList())?:適用于需要對列表進行修改的場景,因為它返回的是普通的ArrayList,可以進行各種操作?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/85598.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/85598.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/85598.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

位集合(STL bitset)簡介

【bitset 官方網址】 https://cplusplus.com/reference/bitset/bitset/ 位集合&#xff08;Bit Set&#xff09;是一種高效存儲和操作布爾值&#xff08;true/false&#xff09;或二進制位&#xff08;0/1&#xff09;的數據結構&#xff0c;主要用于處理大規模整數集合或狀態標…

基于SDN環境下的DDoS異常攻擊的檢測與緩解

參考以下兩篇博客&#xff0c;最后成功&#xff1a; 基于SDN的DDoS攻擊檢測和防御方法_基于sdn的ddos攻擊檢測與防御-CSDN博客 利用mininet模擬SDN架構并進行DDoS攻擊與防御模擬&#xff08;Ryumininetsflowpostman&#xff09;_mininet模擬dos攻擊-CSDN博客 需求 H2 模擬f…

責任鏈模式:構建靈活可擴展的請求處理體系(Java 實現詳解)

一、責任鏈模式核心概念解析 &#xff08;一&#xff09;模式定義與本質 責任鏈模式&#xff08;Chain of Responsibility Pattern&#xff09;是一種行為型設計模式&#xff0c;其核心思想是將多個處理者對象連成一條鏈&#xff0c;并沿著這條鏈傳遞請求&#xff0c;直到有某…

如何進行頁面前端監控

&#x1f9d1;?&#x1f4bb; 寫在開頭 點贊 收藏 學會&#x1f923;&#x1f923;&#x1f923; 前端監控主要分三個方向 前端性能&#xff08;用戶體驗優化&#xff09; 異常監控 業務指標跟 下面我來分別介紹三類指標如何獲取 1&#xff09;前端性能指標&#xff1a; …

Ajax技術分析方法全解:從基礎到企業級實踐(2025最新版)

引言 Ajax技術自2005年正式命名以來,已支撐全球83%的Web應用實現異步交互。2025年最新數據顯示,單頁面應用(SPA)的Ajax請求密度已達日均120億次/應用。本文將系統化解析Ajax分析方法論,涵蓋從基礎原理到企業級工程實踐的完整技術棧。 一、Ajax技術架構解構 1.1 核心組件…

git管理github上的repository

1. 首先注冊github并創建一個倉庫&#xff0c;這個很簡單&#xff0c;網上教程也很多&#xff0c;就不展開說了 2. 安裝git&#xff0c;這個也很簡單&#xff0c;不過這里有個問題就是你當前windows的用戶名即&#xff1a;C/Users/xxx 這個路徑不要有中文&#xff0c;因為git …

Windows 下部署 SUNA 項目:虛擬環境嘗試與最終方案

#工作記錄 #回顧總結 本文記錄了在 Windows 系統上&#xff0c;通過 PyCharm 圖形界面&#xff08;盡量減少命令行操作&#xff09;部署 SUNA 項目時&#xff0c;針對不同虛擬環境方案的嘗試過程、遇到的問題以及最終選擇的可行方案&#xff0c;并補充了整體部署思路與推薦。…

無向圖的點、邊雙連通分量

文章目錄 點雙連通分量邊雙連通分量 有向圖的強連通分量&#xff1a;寒假學習筆記【匠心制作&#xff0c;圖文并茂】——1.20拓撲、強連通分量、縮點 點雙連通分量 在這之前&#xff0c;先讓我們了解幾個概念。 割點&#xff1a;刪除一個點和其連出的邊后&#xff0c;原圖會…

第六十二節:深度學習-加載 TensorFlow/PyTorch/Caffe 模型

在計算機視覺領域,OpenCV的DNN(深度神經網絡)模塊正逐漸成為輕量級模型部署的利器。本文將深入探討如何利用OpenCV加載和運行三大主流框架(TensorFlow、PyTorch、Caffe)訓練的模型,并提供完整的代碼實現和優化技巧。 一、OpenCV DNN模塊的核心優勢 OpenCV的DNN模塊自3.3…

Spring @Autowired自動裝配的實現機制

Spring Autowired自動裝配的實現機制 Autowired 注解實現原理詳解一、Autowired 注解定義二、Qualifier 注解輔助指定 Bean 名稱三、BeanFactory&#xff1a;按類型獲取 Bean四、注入邏輯實現五、小結 源碼見&#xff1a;mini-spring Autowired 注解實現原理詳解 Autowired 的…

勝牌?全球成為2026年FIFA世界杯?官方贊助商

勝牌全球將首次與國際足聯&#xff08;FIFA&#xff09;旗艦賽事建立合作關系。 此次贊助恰逢美國首個潤滑油品牌即將迎來160周年之際&#xff0c;其國際擴張步伐正在加快。 在這項全球頂級賽事籌備期間&#xff0c;勝牌全球將通過各種富有創意的零售和體驗活動與球迷互動。 …

YOLOV7改進之融合深淺下采樣模塊(DSD Module)和輕量特征融合模塊(LFI Module)

目錄 一、研究背景? 二. 核心創新點? ?2.1 避免高MAC操作? ?2.2 DSDM-LFIM主干網絡? 2.3 P2小目標檢測分支? ?3. 代碼復現指南? 環境配置 關鍵修改點 ?4. 實驗結果對比? 4.1 VisDrone數據集性能 4.2 邊緣設備部署 4.3 檢測效果可視化 ?5. 應用場景? …

【C/C++】chrono簡單使用場景

chrono使用場景舉例 1 輸出格式化字符串 示例代碼 auto now std::chrono::system_clock::now(); auto t std::chrono::system_clock::to_time_t(now); auto ms std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()) % 1000;std::ostrin…

Med-R1論文閱讀理解-1

論文總結&#xff1a;Med-R1: Reinforcement Learning for Generalizable Medical Reasoning in Vision-Language Models 論文寫了什么&#xff1f; 本文提出了一種名為 Med-R1 的新框架&#xff0c;旨在通過強化學習&#xff08;Reinforcement Learning, RL&#xff09;提升…

京東熱點緩存探測系統JDhotkey架構剖析

熱點探測使用場景 MySQL 中被頻繁訪問的數據 &#xff0c;如熱門商品的主鍵 IdRedis 緩存中被密集訪問的 Key&#xff0c;如熱門商品的詳情需要 get goods$Id惡意攻擊或機器人爬蟲的請求信息&#xff0c;如特定標識的 userId、機器 IP頻繁被訪問的接口地址&#xff0c;如獲取用…

MCU_IO驅動LED

注意事項&#xff1a; 1、亮度要求較高的情況下&#xff0c;不能由IO直接驅動LED MCU_IO引腳輸出的電壓和電流較弱&#xff0c;如果對光的亮度有要求的話&#xff0c;需要使用三極管來驅動。 MCU_IO的電壓一般為3.3V或者5V&#xff0c;輸出電流一般10mA-25mA。 2、不同顏色…

MyBatis 深度解析:高效 Java 持久層框架實踐指南(基于 3.5.10)

一、MyBatis 核心架構與設計哲學 MyBatis 作為半自動 ORM 框架&#xff0c;核心設計目標是在靈活性與開發效率之間取得平衡。與 Hibernate 等全自動 ORM 框架不同&#xff0c;MyBatis 允許開發者完全控制 SQL 編寫&#xff0c;同時通過映射機制減少重復代碼&#xff0c;特別適…

二叉樹(二)

98.驗證二叉樹 中序遍歷二叉樹&#xff0c;每次遍歷存下當前節點的值&#xff0c;遍歷到下一個節點比較&#xff0c;根據二叉搜索樹的特性&#xff0c;左<中<右有&#xff1a; 如果當前值小于或等于上一個的值&#xff0c;說明不是二叉搜索樹 如果當前值大于上一個節點…

解決Vue3+uni-app導航欄高亮自動同步方案

路由跳轉自動識別導航高亮實現方法 以下代碼使用wd-tabbar組件實現路由跳轉時自動同步導航欄高亮狀態&#xff0c;適用于所有的Vue3uni-app項目。 請根據自身使用框架類型完成&#xff0c;也可根據我使用的UI組件進行完成地址如下&#xff1a; Tabbar 標簽欄 | Wot UI &#…

免費論文查重與AI檢測工具推薦

文章目錄 概要一、PaperPass二、PaperYY注意 概要 畢業季&#xff0c;總少不了查重這一步&#xff0c;甚至查 AI 率。推薦兩款免費查重AIGC檢測的工具。 論文免費查重查AI&#xff1a; https://paperpass.com/ https://www.paperyy.com/ 一、PaperPass 網址&#xff1a; ht…