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 problem (classe not mapped)


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 hibernate problem (classe not mapped)

    il parai que jai pas de chance avec hibernate, une fois que je dit que jai resolu un probleme une autre apparai (mais ce pas grav, c avec les problemes qu'on apprend ),
    jai une base de données dans la quelle il y a des relation entre les tables ce qui implique avant de supprimer une ligne de la table (table maitre)je dois supprimer ses instances dans les autres tables ( tables esclave) tout ca pour une meilleure gestion de mon application.mais le probleme c'est que quand j'instancie dans la classe maitre un objet de la classe esclave generés par hibernate me donne une exception de type: 'ma classe' not mapped
    plz si qlq 1 a une idée,tutorial ou un link te merci pour votre aide

  2. #2
    Membre habitué Avatar de nikalkal
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 231
    Points : 166
    Points
    166
    Par défaut
    Bein faut la mapper.

    Donne nous ton fichier de conf hibernate et tes fichiers de mapping correspondant.

    @+

  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
    pour que ca soit plus clair je vais vous dire en detail mon problem.

    j'utilise myeclipse dont hibernateb qui genere automatiquement les classes et les fichiers de configuration, mon travail consiste seulement dans la configuration.

    en fait le probleme ne consiste pas dans le fait que hibernate genere tous car mon application tourne dans des limites.

    ce que jai fai dans mon application est comme suit:
    jai deux table dans ma base de données
    group{idGroup,desc.....}
    user{iduser,lastname,...,idGroup}

    la cle de la table group migre vers la table user, et tous ca cest normal.
    apres la generation des classes correspondantes et tous les fichiers necissaire
    par hibernate jai cree une classe 'ManageGroups' qui administre les groupes et une autres Manageusers qui administre les users,
    pour etre indipendant de la base de données et indipendant de l'utilisation des triggers ;
    pour ca jai fait dans 'ManageGroup' dans la methode qui supprime un group ,avant de supprimer un group de parcourir toute la table user et de supprimer tous les users qui appartiennent à ce group.

    mais ce que je ne comprend pas est que je manipule les users parfaitement avec les manipulations possible (ajout, modification ,
    consultation) ce qui preuve que le mappage de la classe User s'est bien fait mais quand j'instancie une objet de type User dans la classe ManageGroup ca na marche pas.
    merci pour votre aide d'avance et si qlq un à une idée j'aimerai bien connaitre comment resoudre mon probleme

  4. #4
    Membre habitué Avatar de nikalkal
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 231
    Points : 166
    Points
    166
    Par défaut
    Donne nous le code de tes classes.

  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 xml 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/DocumentModelSecurity.hbm.xml" />
    <mapping resource="com/paperLess/GED/hibernate/mapClass/Folders.hbm.xml" />
    <mapping resource="com/paperLess/GED/hibernate/mapClass/Lists.hbm.xml" />
    <mapping resource="com/paperLess/GED/hibernate/mapClass/IndexInDocumentModel.hbm.xml" />
    <mapping resource="com/paperLess/GED/hibernate/mapClass/DocumentModels.hbm.xml" />
    <mapping resource="com/paperLess/GED/hibernate/mapClass/Loans.hbm.xml" />
    <mapping resource="com/paperLess/GED/hibernate/mapClass/ConfFax.hbm.xml" />
    <mapping resource="com/paperLess/GED/hibernate/mapClass/Documents.hbm.xml" />
    <mapping resource="com/paperLess/GED/hibernate/mapClass/FolderSecurity.hbm.xml" />
    <mapping resource="com/paperLess/GED/hibernate/mapClass/DocumentLoan.hbm.xml" />
    <mapping resource="com/paperLess/GED/hibernate/mapClass/Logs.hbm.xml" />
    <mapping resource="com/paperLess/GED/hibernate/mapClass/Groups.hbm.xml" />
    <mapping resource="com/paperLess/GED/hibernate/mapClass/Indexs.hbm.xml" />
    </session-factory>
    </hibernate-configuration>

  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
    je vais dans chaque message données le code d'un seul fichier car la taille de message ne me permet pas de tous ecrire.
    pour le fichier de mapping de la table 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>

  7. #7
    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
    et pour celui de la table 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>

  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
    pour la classe users:
    package com.paperLess.GED.hibernate.mapClass;

    import java.util.HashSet;
    import java.util.Set;


    /**
    * AbstractUsers generated by MyEclipse - Hibernate Tools
    */

    public abstract class AbstractUsers implements java.io.Serializable {


    // Fields

    private Integer idUser;
    private Groups groups;
    private String lastName;
    private String firstName;
    private String mail;
    private String login;
    private String password;
    private String type;
    private byte visualization;
    private byte addition;
    private byte updat;
    private byte delet;
    private String matricule;
    private String direction;
    private String division;
    private String department;
    private String service;
    private Set logses = new HashSet(0);
    private Set confFaxes = new HashSet(0);
    private Set loanses = new HashSet(0);


    // Constructors

    /** default constructor */
    public AbstractUsers() {
    }

    /** minimal constructor */
    public AbstractUsers(Groups groups) {
    this.groups = groups;
    }

    /** full constructor */
    public AbstractUsers(Groups groups, String lastName, String firstName, String mail, String login, String password, String type, byte visualization, byte addition, byte updat, byte delet, String matricule, String direction, String division, String department, String service, Set logses, Set confFaxes, Set loanses) {
    this.groups = groups;
    this.lastName = lastName;
    this.firstName = firstName;
    this.mail = mail;
    this.login = login;
    this.password = password;
    this.type = type;
    this.visualization = visualization;
    this.addition = addition;
    this.updat = updat;
    this.delet = delet;
    this.matricule = matricule;
    this.direction = direction;
    this.division = division;
    this.department = department;
    this.service = service;
    this.logses = logses;
    this.confFaxes = confFaxes;
    this.loanses = loanses;
    }


    // Property accessors

    public Integer getIdUser() {
    return this.idUser;
    }

    public void setIdUser(Integer idUser) {
    this.idUser = idUser;
    }

    public Groups getGroups() {
    return this.groups;
    }

    public void setGroups(Groups groups) {
    this.groups = groups;
    }

    public String getLastName() {
    return this.lastName;
    }

    public void setLastName(String lastName) {
    this.lastName = lastName;
    }

    public String getFirstName() {
    return this.firstName;
    }

    public void setFirstName(String firstName) {
    this.firstName = firstName;
    }

    public String getMail() {
    return this.mail;
    }

    public void setMail(String mail) {
    this.mail = mail;
    }

    public String getLogin() {
    return this.login;
    }

    public void setLogin(String login) {
    this.login = login;
    }

    public String getPassword() {
    return this.password;
    }

    public void setPassword(String password) {
    this.password = password;
    }

    public String getType() {
    return this.type;
    }

    public void setType(String type) {
    this.type = type;
    }

    public byte getVisualization() {
    return this.visualization;
    }

    public void setVisualization(byte visualization) {
    this.visualization = visualization;
    }

    public byte getAddition() {
    return this.addition;
    }

    public void setAddition(byte addition) {
    this.addition = addition;
    }

    public byte getUpdat() {
    return this.updat;
    }

    public void setUpdat(byte updat) {
    this.updat = updat;
    }

    public byte getDelet() {
    return this.delet;
    }

    public void setDelet(byte delet) {
    this.delet = delet;
    }

    public String getMatricule() {
    return this.matricule;
    }

    public void setMatricule(String matricule) {
    this.matricule = matricule;
    }

    public String getDirection() {
    return this.direction;
    }

    public void setDirection(String direction) {
    this.direction = direction;
    }

    public String getDivision() {
    return this.division;
    }

    public void setDivision(String division) {
    this.division = division;
    }

    public String getDepartment() {
    return this.department;
    }

    public void setDepartment(String department) {
    this.department = department;
    }

    public String getService() {
    return this.service;
    }

    public void setService(String service) {
    this.service = service;
    }

    public Set getLogses() {
    return this.logses;
    }

    public void setLogses(Set logses) {
    this.logses = logses;
    }

    public Set getConfFaxes() {
    return this.confFaxes;
    }

    public void setConfFaxes(Set confFaxes) {
    this.confFaxes = confFaxes;
    }

    public Set getLoanses() {
    return this.loanses;
    }

    public void setLoanses(Set loanses) {
    this.loanses = loanses;
    }









    }

  9. #9
    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
    et pour la classe groups:
    package com.paperLess.GED.hibernate.mapClass;

    import java.util.HashSet;
    import java.util.Set;


    /**
    * AbstractGroups generated by MyEclipse - Hibernate Tools
    */

    public abstract class AbstractGroups implements java.io.Serializable {


    // Fields

    private Integer idGroup;
    private String name;
    private String description;
    private Set userses = new HashSet(0);
    private Set documentModelSecurities = new HashSet(0);
    private Set folderSecurities = new HashSet(0);


    // Constructors

    /** default constructor */
    public AbstractGroups() {
    }


    /** full constructor */
    public AbstractGroups(String name, String description, Set userses, Set documentModelSecurities, Set folderSecurities) {
    this.name = name;
    this.description = description;
    this.userses = userses;
    this.documentModelSecurities = documentModelSecurities;
    this.folderSecurities = folderSecurities;
    }


    // Property accessors

    public Integer getIdGroup() {
    return this.idGroup;
    }

    public void setIdGroup(Integer idGroup) {
    this.idGroup = idGroup;
    }

    public String getName() {
    return this.name;
    }

    public void setName(String name) {
    this.name = name;
    }

    public String getDescription() {
    return this.description;
    }

    public void setDescription(String description) {
    this.description = description;
    }

    public Set getUserses() {
    return this.userses;
    }

    public void setUserses(Set userses) {
    this.userses = userses;
    }

    public Set getDocumentModelSecurities() {
    return this.documentModelSecurities;
    }

    public void setDocumentModelSecurities(Set documentModelSecurities) {
    this.documentModelSecurities = documentModelSecurities;
    }

    public Set getFolderSecurities() {
    return this.folderSecurities;
    }

    public void setFolderSecurities(Set folderSecurities) {
    this.folderSecurities = folderSecurities;
    }









    }

  10. #10
    Membre habitué Avatar de nikalkal
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 231
    Points : 166
    Points
    166
    Par défaut
    Citation Envoyé par oughlad
    quand j'instancie une objet de type User dans la classe ManageGroup ca na marche pas
    Code de ManageGroup ?

  11. #11
    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
    ici le morceau qui supprime tous les users par un group:
    protected void deleteUsersByGroup( Integer idGroup) throws HibernateException{
    List users = getUsers();
    for (int i = 0; i < users.size(); i++) {
    Users user = (Users) users.get(i);
    Groups group=user.getGroups();
    if ( group.getIdGroup()== idGroup) {
    deleteUser(user.getIdUser());
    }
    }
    }
    et ici la suppression du groups:
    public void deleteGroup(Integer idGroup)throws HibernateException
    {
    /**Avant de supprimer un Group, il faut supprimer les Users associés**/
    ManageUsers manageUsers=new ManageUsers();
    manageUsers.deleteUsersByGroup(idGroup);
    /**Suppression de Group**/

    Groups group=new Groups();

    group.setIdGroup(idGroup);

    Session session = HibernateSessionFactory.currentSession();
    Transaction tx = session.beginTransaction();
    session.delete(group);
    tx.commit();
    HibernateSessionFactory.closeSession();
    }

  12. #12
    Membre éclairé Avatar de Le Pharaon
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 880
    Points : 742
    Points
    742
    Par défaut [Hibernate Tools]Erreur : Problems while loading database driverclass
    A supprimer

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/07/2010, 23h04
  2. Hibernate annotation: class not mapped
    Par Babilion dans le forum Hibernate
    Réponses: 7
    Dernier message: 25/03/2010, 22h54
  3. Réponses: 5
    Dernier message: 08/05/2009, 18h03
  4. Connexion IRport et Hibernate (component class not found)
    Par imad.elghazoini dans le forum iReport
    Réponses: 4
    Dernier message: 29/06/2007, 11h51
  5. [hibernate] probleme de mapping un-vers-plusieurs
    Par Elmilouse dans le forum Hibernate
    Réponses: 2
    Dernier message: 12/04/2006, 13h37

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