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

Développement Web en Java Discussion :

MySQL et J2EE


Sujet :

Développement Web en Java

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2015
    Messages : 18
    Par défaut MySQL et J2EE
    Bonjour,

    j'essaie d'ajouter un élément à ma base de données mais le problème qu'il m'ajoute même si l’élément existe déjà. Voilà ma fonction d'ajout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public String ajouterCategorie(){
    		if(categorie != null){
    			categorieServiceLocal.saveOrUpdate(categorie);
    			categories = categorieServiceLocal.findAll();
    			System.out.println("La liste des etudiants dans la methode ajout = " + categories.size());
    			FacesMessage facesMessage1 = new FacesMessage(FacesMessage.SEVERITY_INFO,"Categorie Ajouté","");
    			FacesContext.getCurrentInstance().addMessage(null, facesMessage1);
    		}
     
    		return "";
    	}

    Je veux qu'il n'ajoute pas l’élément s'il existe déjà dans ma base. Le test sera fait sur le nom.
    Merci d'avance pour votre aide.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Java/JavaEE
    Inscrit en
    Août 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java/JavaEE

    Informations forums :
    Inscription : Août 2014
    Messages : 194
    Par défaut
    Bonjour,

    Je suppose que ton saveOrUpdate(categorie) implémente un .merge(categorie) dedans ce qui signifie qu'il va mettre a jour l'objet s'il existe ou de l'insérer s'il n'existe pas tout en se basant sur la clé primaire qui n'est pas l'attribut "name" dans ton cas, donc tu va avoir une nouvelle ligne dans ta base.

    La première solution serais d'annoté ton attribut "name" avec @unique si tu travaille avec JPA au cas ou tu souhaite ne pas ajouter aucun autres objet portant le même "name".
    La deuxième solution c'est que tu fais un simple test sur l'existence d'un objet qui porte le même "name" avant d'envoyé ta requête.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2015
    Messages : 18
    Par défaut
    oui c'est ça le problème qu'est ce que je dois ajouter pour faire le test
    et je dois faire le test sur le nom de la categorie

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 87
    Par défaut
    tu dois ajouter cette methode au niveau de ton classe Service

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public boolean NomExists(String nom) {
    		boolean exists = false;
    		String jpql = "select case when (count(u) > 0)  then true else false end from Categorie u where u.nom=:nom";
    		Query query = em.createQuery(jpql);
    		query.setParameter("nom", nom);
    		exists = (Boolean)query.getSingleResult();
    		return exists;
    	}

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2015
    Messages : 18
    Par défaut
    c'est quoi cette em
    par ce que il m'affiche erreur!!

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 87
    Par défaut
    Citation Envoyé par slimo2 Voir le message
    c'est quoi cette em
    par ce que il m'affiche erreur!!


    tu dois déclarer em de type entityManager

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 87
    Par défaut
    bon je vois que tu utilise hibernate donc c'est pas la peine de prendre la méthode tel elle est
    prend just la notion de travail et garder la même requete

Discussions similaires

  1. [Flex3] FLEX Cairngorm BlazeDS Spring Hibernate Mysql MVC J2EE
    Par eldiable2005 dans le forum Flex
    Réponses: 6
    Dernier message: 14/12/2010, 14h04
  2. [Télétravail] Développeur PHP/MySQL/ASP/JAVA/J2EE
    Par cgeourjon dans le forum Demandes
    Réponses: 0
    Dernier message: 25/10/2007, 15h38
  3. Appli J2ee / tomcat / MySQL en ligne ?
    Par peter27x dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 22/02/2007, 15h45
  4. [j2ee][mysql] Pb d'insertion d'une Heure
    Par ultracoxy dans le forum JDBC
    Réponses: 3
    Dernier message: 10/07/2006, 21h13

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