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.