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 ?
avez-vous lancer la transaction ? ou ce que vous utilisez pour la gestion des transactions ?
OriginalL'auteur galao | 2013-05-29
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire en utilisant NativeQuery et sa méthode executeUpdate:
avez-vous déjà trouvé? Demande aussi si c'est possible
OriginalL'auteur Saeed Zarinfam
J'ai eu le même problème. Voici la solution.
OriginalL'auteur Boris Y.
En supposant que vous utilisez le container-managed
entityManager
(injecté avec@PersistenceContext
) que vous venez de manquer un@Transactionnal
annotation au-dessus de votre TestFacade méthode.OriginalL'auteur Gab
OriginalL'auteur Debashis Nandi