MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

TransactionRequiredException Menjalankan kueri pembaruan/penghapusan

Saya tidak yakin apakah ini akan membantu situasi Anda (yaitu jika masih ada), namun, setelah menjelajahi web untuk masalah serupa.

Saya membuat kueri asli dari EntityManager kegigihan untuk melakukan pembaruan.

Query query = entityManager.createNativeQuery(queryString);

Saya menerima kesalahan berikut:

disebabkan oleh:javax.persistence.TransactionRequiredException:Menjalankan update/delete query

Banyak solusi menyarankan untuk menambahkan @Transactional ke metode Anda. Melakukan ini saja tidak mengubah kesalahan.

Beberapa solusi menyarankan untuk meminta EntityManager untuk EntityTransaction sehingga Anda dapat menelepon mulai dan melakukan sendiri. Ini menimbulkan kesalahan lain:

disebabkan oleh:java.lang.IllegalStateException:Tidak diizinkan membuat transaksi di EntityManager bersama - gunakan transaksi Spring atau EJBCMT sebagai gantinya

Saya kemudian mencoba metode yang menurut sebagian besar situs adalah untuk menggunakan manajer entitas yang dikelola aplikasi dan bukan dikelola wadah (yang saya yakini adalah Spring) dan itu adalah joinTransaction() .

Memiliki @Transactional mendekorasi metode dan kemudian memanggil joinTransaction() pada objek EntityManager sesaat sebelum memanggil query.executeUpdate() dan pembaruan kueri asli saya berhasil.

Saya harap ini membantu orang lain yang mengalami masalah ini.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Grup MongoDB dan jumlahkan dengan id sebagai kunci

  2. Pemrograman Database Python dengan MongoDB untuk Pemula

  3. Buat serial satu kelas dalam dua cara berbeda dengan Jackson

  4. Bagaimana cara memperbarui sebagian objek di MongoDB sehingga objek baru akan overlay/bergabung dengan yang sudah ada

  5. Bagaimana cara mengubah nama koleksi di luwak.model?