问题:使用mybatis时,一个sqlsessionfactory.opensession的方法,能否同时兼容多个dao的操作
例如,我在pojo a 的dao,aDAO的插入操作中,实例化了一个session,
SqlSession session = sqlSessionFactory.openSession();
ADAO aDAO = session.getMapper(ADAO.class);
此时由于我要同时对pojo b进行一些操作,那么我可不重新实例化新的session,而是直接使用之前实例的session a
BDAO bDAO = session.getMapper(BDAO.class)
如果可以这么操作的话,请问有什么限制(因为如果是删除,增加,更新的操作的话,是需要提交会话的,而查询不需要)
Jika kelas- digunakan untuk mengurus
biasa
- dalam
hanya boleh digunakan semula dalam satu urutan paling banyak.
dalam
mybatis
SqlSessionManager
Session
, setiap urutan adalahSession
mybatis-spring
Dalam pemalam bersepadu ini, pernyataan pertanyaan/kemas kini yang tidak mendayakan urus niaga sepadan denganSession
Jika transaksi didayakan, pertanyaan/kemas kini dalam transaksi ini semua berkongsiSession
mybatis
Executor
tidak selamat untuk benang, jadiSession
Sudah tentu, satu sesi boleh mengendalikan berbilang DAO (termasuk tambah/padam/ubah suai/semak Sudah tentu, operasi DAO ini mesti memenuhi ciri-ciri transaksi apabila sesi diserahkan/digulung semula: sama ada semua pengubahsuaian berjaya). atau kesemuanya gagal. Satu-satunya sekatan ialah: kerana mereka berada dalam sesi yang sama, DAO ini mesti mengakses Pangkalan Data yang sama.
Ya, kecuali seperti yang dinyatakan di atas, dao ini mengakses pangkalan data yang sama, sila ambil perhatian bahawa sesi itu tidak selamat untuk thread