Transaction doit être d'exception sur exécuter la mise à jour pour JPQL requête de mise à jour

J'ai cette erreur lorsque j'essaie d'exécuter ce code.

Erreur:

javax.la persistance.TransactionRequiredException: executeUpdate n'est pas pris en charge pour un objet de Requête obtenue par le biais de non-accès transactionnel d'un container-managed transactionnelle EntityManager

Code: (_ut est un usertransaction objet)

public void setMainCategory(Entier deptId, Entier catId) {

        try {
            Query setmain = _entityManager.createNamedQuery("Category.setAsMain");
            Query removeMain = _entityManager.createNamedQuery("Category.removeMain");
            setmain.setParameter("categoryId", catId);
            Department d;
            d=_entityManager.find(Department.class, deptId);
            removeMain.setParameter("department", d);
            _ut.begin();
            removeMain.executeUpdate();
            _ut.commit();
            _ut.begin();
            setmain.executeUpdate();
            _ut.commit();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

J'ai d'autres fonctions qui sont identiques dans la mise en œuvre et ils ne jetez pas cette erreur.

Toutes les suggestions sont grandement appréciés.

Grâce.

OriginalL'auteur user2233876 | 2013-04-01