Anda tidak boleh menggunakan Session dan Transaction sebagai anggota kelas dao Anda seperti itu. Session/EntityManager seharusnya dicakup oleh unit kerja, mereka tidak aman.
Dalam kondisi Anda saat ini, karena Spring DI membuat kacang sebagai singleton, jika dua utas menggunakan dao pada saat yang sama, yang kedua akan menimpa keduanya Session dan Transaction anggota itulah sebabnya saya kira Anda mendapatkan IllegalStateExcepion.
Anda harus membuatnya menjadi cakupan utas dengan menggunakannya sebagai variabel dalam metode atau, jika Anda tidak memerlukan metode khusus hibernasi, Anda dapat menggunakan konfigurasi JPA lengkap di Musim Semi dan menggunakan @PersistenceContext/@PersistenceUnit untuk membiarkan kerangka kerja menangani masalah itu.