Spring

MyBatisで「A Cursor is already closed.」が出たときの対処法

MyBatisで「A Cursor is already closed.」が出たときの対処法をメモしておきます。

環境

@Transactionalを付与する

MyBatisでCursorを使うときは、セッションをオープンしてやる必要があります。具体的には、Cursorを使うメソッドに@Transactionalを付与してやればOKです。

以下のように、データベースからレコードを1件ずつ読み込む処理では、@Transactional(readOnly = true)を付与してあげましょう。

まとめ

MyBatisで「A Cursor is already closed.」が出たときの対処法でした。

参考リンク

-Spring

© 2024 Reasonable Code