在同一事務中,mybatis多次查詢返回相同結果解決方法
一、問題描述:
使用spring @Transaction事務時,在for迴圈中需要多次執行同一查詢語句,第一次查詢出物件後,對物件進行修改後,結果再進行第二次查詢的時候,查詢返回的資料是自己第一次修改後的資料。因為業務需要每次查詢都需要取更改資料庫,以後的查詢都會根據上一次迴圈修改後的值進行操作。
二、解決方法:
(1)在xml檔案 select語句新增 flushCache="true" ,告訴mybatis查詢結束後重新整理快取,不記錄查詢結果到一級快取中
<select id="pageListCount" resultType="int" flushCache="true">
(2)本來想找全域性配置的方法,但是在網上找到mybatis關閉快取的屬性,但是配置上都不起作用,只有第一種方法好用,這裡就不寫了
三、原因:
mybatis有一級快取和二級快取,mybatis對查詢的語句會存在一級快取中,如果在一個事務中,mybatis對同一個session多次查詢同一個sql語句就會去找快取而不是再去查一次資料庫
相關推薦
在同一事務中,mybatis多次查詢返回相同結果解決方法
一、問題描述: 使用spring @Transaction事務時,在for迴圈中需要多次執行同一查詢語句,第一次查詢出物件後,對物件進行修改後,結果再進行第二次查詢的時候,查詢返回的資料是自己第一次修改後的資料。因為業務需要每次查詢都需要取更改資料庫,以後的查詢都會根據上一次迴圈修改後的值進行操
ubuntu 使用sudo apt-get update 出現 被配置多次導致無法升級錯誤解決方法
code 開發機 goup 使用 lin logs 配置 周末 ubun 這個周六周末在考慮升級自己GPU開發機,在琢磨使用docker來按轉tensorflow環境,在升級軟件的時候爆出了如下錯誤 在 /etc/apt/sources.list.d/sogoupin
PHPExcel在高版本PHP7中,Writer->save出現ERR_INVALID_RESPONSE錯誤的解決方法
問題 ans content head contex flow nbsp ext blog 這個Writer->save錯誤可能由於很多原因導致,其中有一部分是因為header和緩沖區的錯誤導致的 這部分具體討論可以看這裏http://stackoverflow.
fiddler抓包檔案中,預設不顯示css/js檔案的解決方法
用fiddler抓包時,預設不顯示CSS/JS檔案 。如何顯示css/js檔案呢?解決步驟:1. 勾選filters,找到Request Headers,勾選Show only if URL contains項,填寫需要顯示的檔案型別REGEX:(?insx)/[^\?/]*
在SQL中直接使用儲存過程查詢返回的結果集
在實際使用儲存過程是,有時我們希望先判斷儲存過程的返回結果集是否有記錄,然後走不同的業務邏輯,這是就需要在SQL語句中直接讀取到儲存過程的返回結果集,方式如下: 先按照儲存過程結果集定義一個變數 declare @tbl table(門診號 varchar(20), 住院號
Jmeter遠端執行,slave機器顯示呼叫成功,但是master機器沒有返回測試結果解決
Jmeter遠端執行踩坑記錄: 1、按照教程修改jmeter.properties檔案中 remote_hosts=127.0.0.1 為 remote_hosts:192.168.5.158:1099,192.168.5.160:1099 其中192.168.5.160
從一組集合中獲取,分多次取集合中的每段數據中的最大值,重組成一個新的集合。
clas pub 處理 oat private color andro sublist roi 一個項目中偶遇的簡單算法,個人覺得還不錯,雖不常用,也記錄在此吧。 1 package huolongluo.qihuo.util; 2 3 import androi
一個php腳本執行中實例多次PDO,會建立多次數據庫連接。
重用 slist OS play 類實例化 每次 連接 inf log 腳本代碼: <?php try { $dbh = new PDO(‘mysql:host=localhost;dbname=test‘, ‘root‘, ‘root‘); } ca
你有想過在同一臺服務器中,同時多開幾個tomcat嗎
clas java_home tlab ats 裏的 linux中 成了 配置jdk 記錄 tomcat作為許多java項目的運行的環境,常用來跑java項目。而一臺服務器只跑一個tomcat服務又太浪費資源了,so,我們可以在同一臺服務器上,同時跑多個tomcat服務進程
Mybatis plus中一個框多條件查詢 SQL拼接
條件查詢 filter array ryu toc suse return 多條 pen 遇到多條件查詢時,只用框架自帶的方法搞不定,只能自己寫方法拼接 EntityWrapper<YcejShopEntity> wrapper = new EntityWra
MyBatis關聯查詢,一對多關聯查詢
log www. 相同 bubuko pre img ref sele 傳遞 實體關系圖,一個國家對應多個城市 一對多關聯查詢可用三種方式實現: 單步查詢,利用collection標簽為級聯屬性賦值; 分步查詢: 利用association標簽進行分步查詢; 利用co
mybatis generator生成對映檔案時,執行多次,導致xml檔案生成錯誤,設定table schema也無效
在maven中集成了MBG以後,生成xml等對映檔案時,會生成多次。由於xml檔案是追加,導致xml檔案有多次生成的結果。 原因: 1):在資料庫伺服器上,不同的資料庫中表名相同的表多張。(有幾個同名的表,就會生成幾次) 2):mysql驅動升級到8.x,造成設定sch
【codeforces 617E XOR and Favorite Number】【莫隊分塊】【多次查詢求區間[l,r]中區間異或等於k的子區間個數】
【連結】 【題意】 給定一個數組,多次查詢,問區間l,r中有多少個子區間滿足區間異或為k 【思路】 查詢很大,意味著每次回答的時間複雜度不能太大。對於本題,我們可以維護一個字首異或,sum[i],區間[a,b]異或為k等價於sum[a-1]^sum[b]=k,假如
03 mybatis多表查詢一對一,一對多, 多對多
Account.java package cn.itcast.domin; public class Account { private Integer aid; priv
關於mybatis多表查詢只查詢部分欄位,而丟失一整條資料問題
今天在寫一個list資料按某欄位排序問題時遇到了一個問題,就是有很多個數據這個欄位一樣時,只會查出來一個。 如下 頁面,5條資料只查出來3條資料 基礎資訊和接單什麼資訊的分成了2個表,根據接單數排名 select e.engineer_name,
Mybatis中動態sql(多條件查詢)
動態SQL指:通過mtbatis提供的各種標籤實現動態拼接sql語句 例如: <!--動態SQL語句,多條件查詢--> <select id="findSomeByMore" re
HBASE---LSM樹——放棄讀能力換取寫能力,將多次修改放在記憶體中形成有序樹再統一寫入磁碟
LSM樹(Log-Structured Merge Tree)儲存引擎代表資料庫:nessDB、leveldb、hbase等核心思想的核心就是放棄部分讀能力,換取寫入的最大化能力。LSM Tree ,這個概念就是結構化合並樹的意思,它的核心思路其實非常簡單,就是假定記憶體足夠
mybatis 多表查詢,關聯模型
資料庫的表存在多表的關聯關係。 用的是mysql5.5,ssm框架搭建一個管理系統 我用mybatis-generator生成的pojo和mapper.xml以及mapper等檔案,不會自動幫我建立
C#程式在一個終端中只允許開啟一次,防止多次開啟
using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; names
mybatis多條件查詢,動態sql,模糊查詢
mapper.xml中:<select id="selectShareByName" resultMap="seeShare"> SELECT * FROM Diary <where> <!