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

Persistance des données Java Discussion :

Problème sur update


Sujet :

Persistance des données Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 72
    Par défaut Problème sur update
    Salut tout le monde,
    j'aurais bien besoin de votre aide,je développe un application JEE en utilisant le framework JPA et en utilisant JTA pour la transaction (Corrige moi si j'ai dis des bêtises car je suis encore débutant sur JEE ).Le problème c'est que je n'arrive pas a faire un simple update d'un enregistrement(il n' y a aucun modification dans la base de donnée(Oracle)) et le comble c'est que l'ajout et la liste marchent très bien.Je vous donne quelque codes utiles, pour mieux clarifier:

    déclaration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @PersistenceContext(unitName = "ProjStage-ejbPU")
        private EntityManager em;
    Ajout qui marche à merveille:
    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
     
    @Override
        public Intervenant addIntervenant(String matricule,String nom,String tel,String login,String pass,String mail){
        Intervenant inter=new Intervenant();
        inter.setImmatriculeIntervenant(matricule);
        inter.setNomIntervenant(nom);
        inter.setTelIntervenant(tel);
        inter.setLoginIntervenant(login);
        inter.setPasswordIntervenant(pass);
        inter.setMailIntervenant(mail);
         try{
        em.persist(inter);
        return inter;
            }
        catch(Exception e){
        return null;
        }
     
        }
    Et la modification qui ne marche pas:
    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
     
    @Override
        public Intervenant updateIntervenant(java.lang.String matricule, java.lang.String nom, java.lang.String tel, java.lang.String login, java.lang.String pass, java.lang.String mail){
        Intervenant inter=em.find(Intervenant.class, matricule);
        if(inter!=null){
     
        inter.setLoginIntervenant(login);
        inter.setMailIntervenant(mail);
        inter.setNomIntervenant(nom);
        inter.setTelIntervenant(tel);
        inter.setPasswordIntervenant(pass);
        em.merge(inter);
         }
         return inter;
        }
    Je vous remercie d'avance pour votre aide et critique A+

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 72
    Par défaut
    Salut tout le monde,je cherche encore et encore un solution pour mon problème mais je n 'en trouve pas.
    Mais je me suis dis que le problème de "entityManager.merge" peut être au niveau de la relation inter-entité,puisque j'ai un relation OneToMany:
    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
     
    public class Intervenant implements Serializable {
        private static final long serialVersionUID = 1L;
        @Id
        @Basic(optional = false)
        @Column(name = "IMMATRICULE_INTERVENANT")
        private String immatriculeIntervenant;
        @Basic(optional = false)
        @Column(name = "NOM_INTERVENANT")
        private String nomIntervenant;
        @Basic(optional = false)
        @Column(name = "TEL_INTERVENANT")
        private String telIntervenant;
        @Basic(optional = false)
        @Column(name = "LOGIN_INTERVENANT")
        private String loginIntervenant;
        @Basic(optional = false)
        @Column(name = "PASSWORD_INTERVENANT")
        private String passwordIntervenant;
        @Column(name = "MAIL_INTERVENANT")
        private String mailIntervenant;
        @OneToMany(cascade = CascadeType.ALL, mappedBy = "intervenant")
        private List<Intervenir> intervenirList;
         ...
    }
    Mais comment puis-je remédier a ça (modification d'un enregistrement de Intervenant)
    RQ:il n' y a pas encore d'enregistrement dans Intervenir
    Pouvez-vous m'aider,car je suis perdu,ou s'il y a des documents intéressants a propos?

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Je pense plutôt à un problème de commit sur la transaction.
    Dans un contexte JTA, c'est le conteneur qui a la charge des transactions, tu ne les gères pas par le code.
    En règle générale, on passe par un EJB stateless pour faire ces traitement, à la sortie de la méthode, la transaction est validée.
    Le code que tu montres fait partie d'un EJB de ce genre ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 72
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Je pense plutôt à un problème de commit sur la transaction.
    Dans un contexte JTA, c'est le conteneur qui a la charge des transactions, tu ne les gères pas par le code.
    En règle générale, on passe par un EJB stateless pour faire ces traitement, à la sortie de la méthode, la transaction est validée.
    Le code que tu montres fait partie d'un EJB de ce genre ?
    Donc le problème n'est pas dans le code mais au niveau du conteneur puisqu'il n'effectue pas les transactions normalement dans le cas d'un update.
    Alors comment puis-je corriger ce problème?

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    La question est : c'est un EJB stateless ou stateful ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 72
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    La question est : c'est un EJB stateless ou stateful ?
    Salut!
    C'est un EJB stateless,J'ai essayé d'utiliser mon code sur un base de donnée Mysql au lieu d'oracle et ça marche merveille(em.merge),je suis très confondu,mais où est donc la source du problème,et comment y remédier?
    Vos suggestions seront les bienvenues A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème sur un update
    Par bonnet85 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/02/2008, 07h46
  2. Problème lors d'un trigger sur update
    Par yonialhadeff dans le forum Développement
    Réponses: 1
    Dernier message: 09/10/2007, 09h44
  3. Problème sur un UPDATE (T-SQL)
    Par djidji84 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/01/2007, 14h02
  4. Problème d'UPDATE sur un champ d'une table MyISAM
    Par alouette dans le forum Requêtes
    Réponses: 6
    Dernier message: 13/07/2006, 21h17
  5. Problème de update sur un datagrid
    Par jbr_85 dans le forum Accès aux données
    Réponses: 1
    Dernier message: 31/05/2006, 15h57

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