L'insertion dans mon APP à l'aide de gestionnaire d'entité de requête native

Je suis en train d'insérer des données dans ma base de données, je suis en utilisant JPA dans mon projet.

C'est ce que mon haricot ressemble.

@PersistenceContext
EntityManager em;

    em.createNativeQuery("INSERT INTO testtable ('column1','column2') VALUES ('test1','test2')").executeUpdate();

myfacade:

@Stateless
public class TestFacade extends AbstractFacade<Test> {
    @PersistenceContext(unitName = "TEST2PU")
    private EntityManager em;

    @Override
    protected EntityManager getEntityManager() {
        return em;
    }

    public TestFacade() {
        super(Test.class);
    }

j'obtiens une erreur:

javax.persistence.TransactionRequiredException: executeUpdate is not supported for a Query object obtained through non-transactional access of a container-managed transactional EntityManager

et si je n'utilise pas @PersistenceContext for EntityManager

EntityManagerFactory emf = Persistence.createEntityManagerFactory("TEST2PU");
EntityManager em = emf.createEntityManager();
em.createNativeQuery("INSERT INTO testtable ('column1','column2') VALUES ('test1','test2')").executeUpdate();

c'est mon erreur:

javax.persistence.TransactionRequiredException: 
Exception Description: No externally managed transaction is currently active for this thread

remarque: vraiment besoin d'utiliser de requête native pour cela.

Ce problème n'est pas lié avec la JSF.
avez-vous lancer la transaction ? ou ce que vous utilisez pour la gestion des transactions ?

OriginalL'auteur galao | 2013-05-29