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

Hibernate Java Discussion :

Hibernate doublon property


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 51
    Par défaut Hibernate doublon property
    Salut,
    je débute avec hibernate .
    Je viens de créer une table Pays avec id et Nom, avec ce mapping :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <class name="PaysDB" table="Pays" mutable="true">
        <cache usage="read-write"/>
     
        <id name="Id" column="CODE" type="int">
          <generator class="native" />
        </id>
     
        <property name="Name" column="NAME" type="string" unique="true"/>
     
      </class>
    J'arrive tres bien à y faire des requêtes, des insert ..etc..
    Par contre, j'ai mis unique="true" sur la propriété Name en me disant (apres lecture de la doc) que je ne veux pas qu'il y est 2 pays avec le même nom dans ma base de données mais si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    PaysDB p0=new PaysDB();
    p0.Name="France";
     
    SaveOrUpdate(p0);
     
    Pays p1=new PaysDB();
    p1.Name="France";
     
    SaveOrUpdate(p1);
    Je me retrouve avec 2 lignes dans ma base avec biensûr un id différent mais avec le même nom
    Je peux faire autrement en testant tout d'abord si le Pays existe etc... mais j'aimerais comprendre le véritable sens de unique="true|false" ?????
    J'ai du louper un truc dans la doc mais quoi ????
    Tout aide, conseil sonts les bienvenus....

  2. #2
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 51
    Par défaut
    En fait, j'aimerais que ma table Pays ne comporte pas plusieurs nom de pays identique. Je peux tester avant de faire un save si le nom existe en base de données ou pas, mais à utiliser un framework comme hibernate, j'ai envie d'utiliser toutes les possibilités qu'il peut m'offrir

    A quoi sert l'attribut unique="true|false" pour une property ????
    merci d'avance pour toutes aides...

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Par défaut
    Avec un peu de retard, mais sait-on jamais... Pour qu'il prenne en compte la clause "unique" tu dois aussi lui dire que la propriété est "not-null".

    Après quoi, ça devrait fonctionner

Discussions similaires

  1. hibernate.QueryException: could not resolve property
    Par g56589 dans le forum Hibernate
    Réponses: 2
    Dernier message: 29/01/2008, 23h45
  2. Hibernate et doublons
    Par JAVA man dans le forum Hibernate
    Réponses: 3
    Dernier message: 12/01/2008, 09h54
  3. [configuration]hibernate.cfg.xml ou hibernate.properties
    Par david06600 dans le forum Hibernate
    Réponses: 1
    Dernier message: 16/09/2007, 13h26
  4. [Hibernate] "could not resolve property" sur un tri
    Par Gorou dans le forum Hibernate
    Réponses: 1
    Dernier message: 13/07/2007, 12h27
  5. [hibernate] many-to-one not-null property
    Par chtiboss dans le forum Hibernate
    Réponses: 2
    Dernier message: 10/07/2007, 10h16

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