MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

TransactionRequiredException Изпълнение на заявка за актуализиране/изтриване

Не съм сигурен обаче дали това ще помогне на вашата ситуация (тоест ако все още съществува), след като претърсих мрежата за подобен проблем.

Създавах собствена заявка от постоянен EntityManager за извършване на актуализация.

Query query = entityManager.createNativeQuery(queryString);

Получавах следната грешка:

причинено от:javax.persistence.TransactionRequiredException:Изпълнение на заявка за актуализиране/изтриване

Много решения предлагат добавяне на @Transactional към вашия метод. Само това не промени грешката.

Някои решения предлагат да поискате от EntityManager EntityTransaction за да можете да извикате begin и да се ангажирате. Това извежда друга грешка:

причинено от:java.lang.IllegalStateException:Не е разрешено да се създава транзакция в споделен EntityManager - вместо това използвайте Spring транзакции или EJBCMT

След това изпробвах метод, за който повечето сайтове казват, че е за използване на управлявани от приложения мениджъри на обекти, а не за управление на контейнери (което според мен е Spring) и това беше joinTransaction() .

Имате @Transactional декориране на метода и след това извикване на joinTransaction() върху обекта EntityManager точно преди извикването на query.executeUpdate() и моята собствена актуализация на заявката работи.

Надявам се това да помогне на някой друг, който се сблъсква с този проблем.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongo - не можа да се свърже със сървър 127.0.0.1:27017

  2. Съвпадение с подниз в агрегирането на mongodb

  3. mongodb премества документи от една колекция в друга колекция

  4. Как да създадете схема Mongoose с масив от идентификатори на обекти?

  5. Пагинация на масива mongoDB