Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème d'ajout Ejb3

javax.persistence.TransactionRequiredException

    16 octobre 2010 à 15:18:17

    Salut
    j'ai un problème d'ajout que je ne sais pas comment le résoudre
    j'ai crée une Entity Bean Personne
    @Entity
    public class Personne implements Serializable {
        private static final long serialVersionUID = 1L;
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private int id;
        private String nomComplet;
        public int getId() {
            return id;
        }
     
        public void setId(int id) {
            this.id = id;
        }
     
        public String getNomComplet() {
            return nomComplet;
        }
     
        public void setNomComplet(String nomComplet) {
            this.nomComplet = nomComplet;
        }
       
        @Override
        public int hashCode() {
            int hash = 0;
            hash += (int) id;
            return hash;
        }
     
        @Override
        public boolean equals(Object object) {
            // TODO: Warning - this method won't work in the case the id fields are not set
            if (!(object instanceof Personne)) {
                return false;
            }
            Personne other = (Personne) object;
            if (this.id != other.id) {
                return false;
            }
            return true;
        }
     
        @Override
        public String toString() {
            return "entites.Personne[id=" + id + "]";
        }
     
    }
    

    puis Manger bean avec une fonction d'ajout
    @ManagedBean
    @RequestScoped
    public class indexBean {
     
     
       @PersistenceContext(unitName="TestSimplePU")
       EntityManager em;
        private String message="En attente";
     
        public indexBean() {
        }
     
        public String getMessage() {
            return message;
        }
     
        public void setMessage(String message) {
            this.message = message;
        }
     
        public void ajouter(){
            try {
     
            Personne personne= new Personne();
            personne.setNomComplet("Super Man");
                em.persist(personne);
                message="Ajout bin fait ";
            } catch (Exception e) {
                message = "Erreur "+e;
            }
        }
    }
    

    mais rien ne marche
    j'ai un message d'erreur javax.persistence.TransactionRequiredException

    s'i vous avez une solution n’hésitez pas
    merci d’avance
    • Partager sur Facebook
    • Partager sur Twitter
      21 octobre 2010 à 0:20:57

      Tu devrais peut-etre invoquer une transaction :
      @ManagedBean
      @TransactionManagement(TransactionManagementType.BEAN)
      @RequestScoped
      public class indexBean {
      ...
      
      • Partager sur Facebook
      • Partager sur Twitter
      J'ai tous les badges d'OpenClassrooms.
        23 octobre 2010 à 21:57:48

        merci ;)

        j'ai une autre question : voila j'ai essayé d'utiliser une interface local
        donc

        @Local
        public interface PersonneSessionBeanLocalLocal {
         
           public  void ajouterPersonne(Personne p);
           
        }
        }
        

        puis un bean qui implémente cette dernière

        @Stateless
        public class PersonneSessionBeanLocal implements PersonneSessionBeanLocalLocal {
         
            @PersistenceContext(unitName="TestPersonnePU")
            EntityManager em;
         
            @Override
            public void ajouterPersonne(Personne p) {
         
                em.persist(p);
         
            }
        

        enfin un manger bean
        @ManagedBean(name="Prs")
        @RequestScoped
        public class indexManagerBean {
         
           // @EJB
            private PersonneSessionBean psb;
            
         
            @EJB
            private PersonneSessionBeanLocal psbl;
                           ....
            public void ajouter2(){
         
                try {
         
                Personne p= new Personne();
                p.setNomComplet(this.nomComplte);
         
                   psbl.ajouterPersonne(p);
         
                message="Personne bien ajouter ";
                } catch (Exception e) {
         
                    message=e.toString();
                }
         
                       ....
            }
        

        mais voila à la fin ce ne marche pas :(:(
        j'ai ce message d'erreur Erreur lors de linjection de ressources dans le bean géré Prs :( vous savez pas d'où viens le problème s'il vous plait ??
        merci d'avance
        • Partager sur Facebook
        • Partager sur Twitter

        Problème d'ajout Ejb3

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown