私は今、私はさらに数(*)を実行せずに最初のクエリの合計行を取り出すことができるように、結果的に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()
を2次のクエリを実行しようとしている春の3にMyBatisのを使用しています。
しかし、2つ目は常に1を返します。そのため、ログを開いてSqlSessionDaoSupportクラスが最初のクエリの接続を開き、それを閉じて(愚かに)、2番目の接続を新規に開きます。
どうすればこの問題を解決できますか?
に役立ちます願っています。 SqlSessionDaoSupportは、SqlSessionTemplate.SqlSessionInterceptorとSqlSessionUtilsを介してMyBatisが既存のSpringトランザクションに確実に参加するようにします。トランザクションがない場合、各DAOコールは毎回接続を開閉する新しいDAOコールを開始します。 – AngerClown
ありがとうございます。私はトランザクションを定義する方法を見つけるつもりです。 –