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 :

prob avec hibernate


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 22
    Points
    22
    Par défaut prob avec hibernate
    slt tt le monde
    je travaille avec une application web avec hibernate,jsp...
    la stucture de la base de données de l'application ,normalement comme toute base de données, il y a une migration des clés.
    apres que jai travaillé avec hibernate,jai testé l'ajout, la modificaton et ca marche avec succés mais lorsque jai volu supprimer une ligne d'une table possedant une cle etrangere d'un autre table jai eu un probleme avec, on ma lancé l'exception:org.hibernate.PropertyValueException
    et la source de l'exception est:
    not-null property references a null or transient value:
    si qlq un a une idee ce sera le bien venu pour moi et merci d'avance pour votre aide

  2. #2
    Membre averti Avatar de Dinytro
    Profil pro
    Inscrit en
    Août 2003
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 390
    Points : 395
    Points
    395
    Par défaut
    apres que jai travaillé avec hibernate,jai testé l'ajout, la modificaton et ca marche avec succés mais lorsque jai volu supprimer une ligne d'une table possedant une cle etrangere d'un autre table jai eu un probleme avec
    N'y aurait-il pas de mapping one-to-many sur ces tables qui posent problème ? si oui, ne serait il pas sur les 2 tables ?

    Quelle version d'Hibernate utilises tu ?
    Un problème sans solution est un problème mal posé. (Albert Einstein)

    Placez votre main sur un poêle une minute et ça vous semble durer une heure. Asseyez vous auprès d'une jolie fille une heure et ça vous semble durer une minute. C'est ça la relativité (Albert Einstein)

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 22
    Points
    22
    Par défaut
    est ce quil y a aucun qui pourra m'aider,
    jai vraiment besoin de votre aide

  4. #4
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Citation Envoyé par oughlad
    est ce quil y a aucun qui pourra m'aider,
    jai vraiment besoin de votre aide
    ?!? je crois que l'on t'as demandé des renseignements juste au dessus ... en y répondant, je suis sur que nous pourrions te donner plus de réponse.

    Pour ma part, ca vient clairement d'un probleme de la clé etrangere, peut on donc avoir ton fichier de mapping et les tables concernées stp ?
    Peut etre un probleme de delete on cascade qui n'est pas fait
    See you, space cowboy... and if you're satisfied, click on

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 22
    Points
    22
    Par défaut
    pour le fichier de configuration :
    <hibernate-configuration>

    <session-factory>
    <property name="connection.username">SA</property>

    <property name="connection.url">jdbc:microsoft:sqlserver://SERVEUR:1433</property>

    <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>

    <property name="myeclipse.connection.profile">PaperLessCon</property>

    <property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>

    <mapping resource="com/paperLess/GED/hibernate/mapClass/Users.hbm.xml" />

    <mapping resource="com/paperLess/GED/hibernate/mapClass/Groups.hbm.xml" />
    </session-factory>

    </hibernate-configuration>
    et pour le mapping de Groups:
    <hibernate-mapping>
    <class name="com.paperLess.GED.hibernate.mapClass.Groups" table="Groups" schema="dbo" catalog="PLV2">
    <id name="idGroup" type="integer">
    <column name="idGroup" />
    <generator class="identity" />
    </id>
    <property name="name" type="string">
    <column name="name" length="20" />
    </property>
    <property name="description" type="string">
    <column name="description" length="50" />
    </property>
    <set name="userses" inverse="true">
    <key>
    <column name="idGroup" not-null="true" />
    </key>
    <one-to-many class="com.paperLess.GED.hibernate.mapClass.Users" />
    </set>
    <set name="documentModelSecurities" inverse="true">
    <key>
    <column name="idGroup" not-null="true" />
    </key>
    <one-to-many class="com.paperLess.GED.hibernate.mapClass.DocumentModelSecurity" />
    </set>
    <set name="folderSecurities" inverse="true">
    <key>
    <column name="idGroup" not-null="true" />
    </key>
    <one-to-many class="com.paperLess.GED.hibernate.mapClass.FolderSecurity" />
    </set>
    </class>
    </hibernate-mapping>
    et Users :
    <hibernate-mapping>
    <class name="com.paperLess.GED.hibernate.mapClass.Users" table="Users" schema="dbo" catalog="PLV2">
    <id name="idUser" type="integer">
    <column name="idUser" />
    <generator class="identity" />
    </id>
    <many-to-one name="groups" class="com.paperLess.GED.hibernate.mapClass.Groups" fetch="select">
    <column name="idGroup" not-null="true" />
    </many-to-one>
    <property name="lastName" type="string">
    <column name="LastName" length="30" />
    </property>
    <property name="firstName" type="string">
    <column name="FirstName" length="30" />
    </property>
    <property name="mail" type="string">
    <column name="mail" length="150" />
    </property>
    <property name="login" type="string">
    <column name="Login" length="20" />
    </property>
    <property name="password" type="string">
    <column name="password" length="20" />
    </property>
    <property name="type" type="string">
    <column name="type" length="10" />
    </property>
    <property name="visualization" type="byte">
    <column name="visualization" />
    </property>
    <property name="addition" type="byte">
    <column name="addition" />
    </property>
    <property name="updat" type="byte">
    <column name="updat" />
    </property>
    <property name="delet" type="byte">
    <column name="delet" />
    </property>
    <property name="matricule" type="string">
    <column name="matricule" length="20" />
    </property>
    <property name="direction" type="string">
    <column name="direction" length="50" />
    </property>
    <property name="division" type="string">
    <column name="division" length="50" />
    </property>
    <property name="department" type="string">
    <column name="department" length="50" />
    </property>
    <property name="service" type="string">
    <column name="service" length="50" />
    </property>
    <set name="logses" inverse="true">
    <key>
    <column name="idUser" not-null="true" />
    </key>
    <one-to-many class="com.paperLess.GED.hibernate.mapClass.Logs" />
    </set>
    <set name="confFaxes" inverse="true">
    <key>
    <column name="idUser" not-null="true" />
    </key>
    <one-to-many class="com.paperLess.GED.hibernate.mapClass.ConfFax" />
    </set>
    <set name="loanses" inverse="true">
    <key>
    <column name="idUser" not-null="true" />
    </key>
    <one-to-many class="com.paperLess.GED.hibernate.mapClass.Loans" />
    </set>
    </class>
    </hibernate-mapping>

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 22
    Points
    22
    Par défaut
    pour le morceau du code qui supprime un User:
    public void deleteUser(Integer idUser) throws HibernateException {


    /**Suppression de User**/
    Session session = HibernateSessionFactory.currentSession();
    Transaction tx = session.beginTransaction();

    Users user =new Users();
    user.setIdUser(idUser);

    session.delete(user);
    tx.commit();
    HibernateSessionFactory.closeSession();

    }

  7. #7
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Bon, je ne crois pas que l'on supprime un objet de la sorte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Users user =new Users();        
    user.setIdUser(idUser);
    Ici, bien que tu sois dans ta transaction, tu crée un nouveau User, pkoi ne pas récuperer aussi rapidement l'utilisateur en base avec load(Users.class,idUser) ?

    Donc pour ma part, je chargerai le user avec load puis seulement après je le supprimerai

    Sinon peut etre faudrait il voir de ce cote la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <set name="userses" inverse="true">
                <key>
                    <column name="idGroup" not-null="true" />
                </key>
                <one-to-many class="com.paperLess.GED.hibernate.mapClass.Users" />
            </set>
    Ya moyen d'afficher le log (avec les requetes SQL faites) et la trace de l'erreur pour avoir tout le contenu exact

    Merci !
    See you, space cowboy... and if you're satisfied, click on

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 22
    Points
    22
    Par défaut
    merci pour ta reponse ,
    ca s'execute parfaitement

Discussions similaires

  1. [débutant] Prob avec Tree ctrl
    Par Devether dans le forum MFC
    Réponses: 3
    Dernier message: 24/03/2004, 11h36
  2. [composant][MX_2004_pro] prob avec scrollpane
    Par scorpiwolf dans le forum Flash
    Réponses: 6
    Dernier message: 12/01/2004, 20h18
  3. Prob avec dates delphi
    Par ericmart dans le forum ASP
    Réponses: 6
    Dernier message: 20/10/2003, 17h51
  4. prob avec utilisation de package
    Par martijan dans le forum Modules
    Réponses: 13
    Dernier message: 11/07/2003, 09h37
  5. Thread probs avec WaitFor()
    Par pixelrock dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/11/2002, 09h40

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