我使用的MyBatis春3.現在我試圖執行因此以下兩個查詢,爲什麼MyBatis在執行每個語句後關閉會話?
SELECT SQL_CALC_FOUND_ROWS() *
FROM media m, contract_url_${contract_id} c
WHERE m.media_id = c.media_id AND
m.media_id = ${media_id}
LIMIT ${offset}, ${limit}
SELECT FOUND_ROWS()
,這樣我可以檢索第一個查詢的總排不執行COUNT(*)還。
但是,第二個總是返回1,所以我打開日誌,發現SqlSessionDaoSupport類爲第一個查詢打開一個連接,並關閉它(愚蠢),併爲第二個連接打開一個新的連接。
我該如何解決這個問題?
正確的。 SqlSessionDaoSupport通過SqlSessionTemplate.SqlSessionInterceptor和SqlSessionUtils確保MyBatis參與任何現有的Spring事務。如果沒有交易,則每次DAO呼叫都會啓動一個新的呼叫,每次打開和關閉連接。 – AngerClown 2012-03-07 14:55:25
謝謝。我將找出如何定義交易。 – 2012-03-08 00:11:34