IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JPA Java Discussion :

MAJ dans la BD avec JPA


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 74
    Par défaut MAJ dans la BD avec JPA
    Je travaille avec netbeans

    j'ai générer mon programmes en faisant "entity classes from database" puis "jpa controller classes from entity classes"

    mon programme marche mais je n'ai pas su utiliser une methode que m'a generer le jpa contoller

    c'est la methode edit(elle fait la MAJ)

    il me met java.lang.NullPointerException

    Si quelqu'un sait comment l'utiliser ou peut me donner une documentation sur cette methode.

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Par défaut
    Salut, il faudrait un peu de code (le contenu de la méthode edit, son appel, l'injection de l'ejb) et peut-être la stack trace de l'esception.
    Citation Envoyé par ihebiheb Voir le message
    Si quelqu'un sait comment l'utiliser ou peut me donner une documentation sur cette methode.
    Ben il y a la des tutoriels/cours sur le site...

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 74
    Par défaut
    Pour le code de la fonction

    public void edit(Candidat candidat) throws NonexistentEntityException, Exception {
    EntityManager em = null;
    try {
    em = getEntityManager();
    em.getTransaction().begin();
    Candidat persistentCandidat = em.find(Candidat.class, candidat.getIdCandidat());
    Collection<Poste> posteCollectionOld = persistentCandidat.getPosteCollection();
    Collection<Poste> posteCollectionNew = candidat.getPosteCollection();
    Collection<Poste> attachedPosteCollectionNew = new ArrayList<Poste>();
    for (Poste posteCollectionNewPosteToAttach : posteCollectionNew) {
    posteCollectionNewPosteToAttach = em.getReference(posteCollectionNewPosteToAttach.getClass(), posteCollectionNewPosteToAttach.getIdPoste());
    attachedPosteCollectionNew.add(posteCollectionNewPosteToAttach);
    }
    posteCollectionNew = attachedPosteCollectionNew;
    candidat.setPosteCollection(posteCollectionNew);
    candidat = em.merge(candidat);
    for (Poste posteCollectionOldPoste : posteCollectionOld) {
    if (!posteCollectionNew.contains(posteCollectionOldPoste)) {
    posteCollectionOldPoste.getCandidatCollection().remove(candidat);
    posteCollectionOldPoste = em.merge(posteCollectionOldPoste);
    }
    }
    for (Poste posteCollectionNewPoste : posteCollectionNew) {
    if (!posteCollectionOld.contains(posteCollectionNewPoste)) {
    posteCollectionNewPoste.getCandidatCollection().add(candidat);
    posteCollectionNewPoste = em.merge(posteCollectionNewPoste);
    }
    }
    em.getTransaction().commit();
    } catch (Exception ex) {
    String msg = ex.getLocalizedMessage();
    if (msg == null || msg.length() == 0) {
    Integer id = candidat.getIdCandidat();
    if (findCandidat(id) == null) {
    throw new NonexistentEntityException("The candidat with id " + id + " no longer exists.");
    }
    }
    throw ex;
    } finally {
    if (em != null) {
    em.close();
    }
    }
    }


    Dans le main j'initialise un candidat puis j'appelle la methode edit
    //instanciation d'un candidat et de son dao
    CandidatJpaController cjc = new CandidatJpaController();
    Candidat cand = new Candidat();

    //attribution des données a un candidat
    cand.setIdCandidat(6);
    cand.setIdPoste("6000");
    cand.setNom("bilel");
    cand.setCv(null);
    cand.setPhoto(null);

    try{
    cjc.edit(cand);
    }
    catch(Exception e){
    e.printStackTrace();
    }

    pour le print stack trace

    java.lang.NullPointerException
    at monprojetjpa.CandidatJpaController.edit(CandidatJpaController.java:79)
    at monprojetjpa.Main.main(Main.java:38)


    Heuu désolé je ne sait pas comment mettre mon code dans un cade

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 62
    Par défaut
    Quand tu réponds tu as une icône dièse à droite de la deuxième barre d'outils. Cela te créé des balises code dans lesquelles tu ajoutes ton code. Si tu peux indenter ton code (les EDI telle Eclipse ont souvent cette option), ce sera bien plus lisible.

    Sinon on n'a pas les numéros de lignes correspondant donc si tu pouvais indiquer quelle est la ligne sur laquelle la nullPointetException est renvoyée dans ta classe ça serait pratique.

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Par défaut
    Citation Envoyé par animageo Voir le message
    Quand tu réponds tu as une icône dièse à droite de la deuxième barre d'outils. Cela te créé des balises code dans lesquelles tu ajoutes ton code.
    +1, pour le code déjà mis, tu peux editer ton message et encadrer le code par : [ code ] et [/ code ] (sans les espaces)

    Citation Envoyé par animageo Voir le message
    Sinon on n'a pas les numéros de lignes correspondant donc si tu pouvais indiquer quelle est la ligne sur laquelle la nullPointetException est renvoyée dans ta classe ça serait pratique.
    +1 aussi, il nous faut savoir où est la ligne 79.

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 74
    Par défaut
    Pour le code de la fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    public void edit(Candidat candidat) throws NonexistentEntityException, Exception {
            EntityManager em = null;
            try {
                em = getEntityManager();
                em.getTransaction().begin();
                Candidat persistentCandidat = em.find(Candidat.class, candidat.getIdCandidat());
                Collection<Poste> posteCollectionOld = persistentCandidat.getPosteCollection();
                Collection<Poste> posteCollectionNew = candidat.getPosteCollection();
                Collection<Poste> attachedPosteCollectionNew = new ArrayList<Poste>();
                for (Poste posteCollectionNewPosteToAttach : posteCollectionNew) {
                    posteCollectionNewPosteToAttach = em.getReference(posteCollectionNewPosteToAttach.getClass(), posteCollectionNewPosteToAttach.getIdPoste());
                    attachedPosteCollectionNew.add(posteCollectionNewPosteToAttach);
                }
                posteCollectionNew = attachedPosteCollectionNew;
                candidat.setPosteCollection(posteCollectionNew);
                candidat = em.merge(candidat);
    /*ligne 79*/  for (Poste posteCollectionOldPoste : posteCollectionOld) {
                    if (!posteCollectionNew.contains(posteCollectionOldPoste)) {
                        posteCollectionOldPoste.getCandidatCollection().remove(candidat);
                        posteCollectionOldPoste = em.merge(posteCollectionOldPoste);
                    }
                }
                for (Poste posteCollectionNewPoste : posteCollectionNew) {
                    if (!posteCollectionOld.contains(posteCollectionNewPoste)) {
                        posteCollectionNewPoste.getCandidatCollection().add(candidat);
                        posteCollectionNewPoste = em.merge(posteCollectionNewPoste);
                    }
                }
                em.getTransaction().commit();
            } catch (Exception ex) {
                String msg = ex.getLocalizedMessage();
                if (msg == null || msg.length() == 0) {
                    Integer id = candidat.getIdCandidat();
                    if (findCandidat(id) == null) {
                        throw new NonexistentEntityException("The candidat with id " + id + " no longer exists.");
                    }
                }
                throw ex;
            } finally {
                if (em != null) {
                    em.close();
                }
            }
        }
    Dans le main j'initialise un candidat puis j'appelle la methode edit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    //instanciation d'un candidat et de son dao
            CandidatJpaController cjc = new CandidatJpaController();
            Candidat cand = new Candidat();
     
            //attribution des données a un candidat
            cand.setIdCandidat(6);
            cand.setIdPoste("6000");
            cand.setNom("bilel");
            cand.setCv(null);
            cand.setPhoto(null);
     
    try{
                cjc.edit(cand);
                }
                catch(Exception e){
                    e.printStackTrace();
                }
    pour le print stack trace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    java.lang.NullPointerException
            at monprojetjpa.CandidatJpaController.edit(CandidatJpaController.java:79)
            at monprojetjpa.Main.main(Main.java:38)

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 03/05/2015, 23h29
  2. Réponses: 1
    Dernier message: 10/10/2013, 16h45
  3. Réponses: 5
    Dernier message: 13/07/2013, 11h03
  4. Forcer la saisie en MAJ dans un Formulaire
    Par lolos dans le forum IHM
    Réponses: 4
    Dernier message: 12/08/2003, 10h57
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo