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 :

Mapping Hibernate one-to-many


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 10
    Par défaut Mapping Hibernate one-to-many
    Bonsoir à tous,

    Je suis plutôt embété par Hibernate, qui ne veut pas faire ce que je lui demande, et je pense que c'est une option que j'ai du oublié dans ma mapping one to many.

    Je vous poste rapidement mes hbm, et vous en dit plus après :
    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
    26
    27
    28
    29
    30
    31
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
            "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
            "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     
    <hibernate-mapping package="com.toto.srh.adminChargement.data" schema="SRH1">
    	<class name="AdminChargement" table="SRHQT0B" lazy="false">
         	<id name="idParametre" type="integer" column="ID_PARAMETRE">
                <generator class="assigned"/>
            </id>    	
            <many-to-one name="typeFichier" class="com.inetpsa.srh.typeFichier.data.TypeFichier" column="ID_REF_FICHIER" cascade="all" not-null="true" /> 
            <property name="gere" type="boolean" column="FLAG_GERE" />
            <property name="codeParametre" type="string" column="CODE_PARAMETRE" />
            <property name="dateDebutValidite" type="date" column="DATE_DEBUT_VALIDITE"/>
            <property name="dateFinValidite" type="date" column="DATE_FIN_VALIDITE"/>
            <property name="profondeurHistorique" type="date" column="PROFONDEUR_HISTORIQUE"/>
            <property name="pays" type="string" column="PAYS"/>
            <property name="societe" type="string" column="SOCIETE"/>        
            <property name="siLocal" type="string" column="SI_LOCAL"/>        
            <property name="population" type="string" column="POPULATION"/>        
            <property name="dateCreation" type="date" column="DATE_CREATION"/>
            <property name="datemodification" type="date" column="DATE_MODIFICATION"/>
            <property name="userModification" type="string" column="USER_MODIFICATION"/>
    	    <set name="rubriqueList" lazy="false" >
    	        <key property-ref="codeParametre"  column="CODE_INFORMATION" unique="false"
    	            not-null="true"/>
    	        <one-to-many class="Rubrique" not-found="exception"/>
    	    </set>
     
    	</class>
    </hibernate-mapping>
    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
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
            "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
            "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     
    <hibernate-mapping package="com.toto.srh.adminChargement.data" schema="SRH1">
    	<class name="Rubrique" table="SRHQT0P" lazy="false">
         	<id name="codeRubrique" type="string" column="CODE_RUBRIQUE" length="10" >
                <generator class="assigned"/>
            </id>    	
            <property name="codeParametre" type="string" column="CODE_INFORMATION" length="5" update="false" insert="false" />
            <property name="libelleRubrique" type="string" column="LIB_RUBRIQUE" length="50" />
            <property name="formatRubrique" type="string" column="FORMAT_RUBRIQUE" length="100" />
            <property name="toCapitalize" type="boolean" column="FLAG_CAPITALIZE" />
            <property name="obligatoire" type="boolean" column="FLAG_OBLIGATOIRE" />
            <property name="dateCreation" type="date" column="DATE_CREATION"/>
            <property name="datemodification" type="date" column="DATE_MODIFICATION"/>
            <property name="userModification" type="string" column="USER_MODIFICATION"/>
     
    	</class>
    </hibernate-mapping>

    Et le bout de code qui me génère une exception :
    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
    26
    27
    28
    	public List<AdminChargement> findValideInformationByTypeFichier(
    			TypeFichier typeFichier) {
    		List<AdminChargement> listInformation = new ArrayList<AdminChargement>();
    		Session session = getSession();
    		try{
    		Criteria criteria = session.createCriteria(AdminChargement.class)
    			.add(Restrictions.eq("gere", true))
    			.add(Restrictions.eq("typeFichier", typeFichier))
    			.add(Restrictions.or(
    				Restrictions.and(
    						Restrictions.le("dateDebutValidite", new Date()),		
    						Restrictions.ge("dateFinValidite", new Date())),
    				Restrictions.and(
    						Restrictions.le("dateDebutValidite", new Date()),		
    						Restrictions.isNull("dateFinValidite"))
    						)
    			);
     
            listInformation = (List<AdminChargement>) criteria.list();
    		}
    		catch(Exception e){
    			log.error(e.getMessage());
    		}
    		finally{
    			session.close();
    		}
            return listInformation;
    	}
    Dans ma table SRHQT0B(AdminChargement), j'ai une clé générée par une séquence, mais je peux avoir plusieurs CODE_PARAMETRE identiques.

    Ma table SRHQT0P (Rubrique) contient le détail des CODE_INFORMATION, et j'ai comme relation SRHQT0B.CODE_PARAMETRE = SRHQT0P.CODE_INFORMATION.

    En SQL, pas de problèmes, les requêtes générées par Hibernate me renvoie bien ce que je veux.

    Quand j'ai une entrée dans AdminChargement qui me renvoie vers plusieurs entrrées dans Rubriques, tout se passe bien également.

    Mon pb, c'est quand j'ai plusieurs entrée dans AdminChargement pour un code information identique, et qui me renvoie vers les mêmes lignes dans Rubriques....
    A ce moment, il me pète une exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    collection is not associated with any session
    Alors qu'en soit, en SQL, je récupère bien ce que je cherche.

    Je pense qu'il se perd car les deux objets AdminChargements, pointent tous les deux vers les mêmes lignes de Rubriques....

    J'ai un peu éclusé toutes les ressources que j'ai pu trouvé.... et le besoin est urgent...

    Merci d'avance pour vos réponses.....

  2. #2
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 10
    Par défaut
    Juste pour info.... j'étais un peu fatigué hier soir quand j'ai posté.....

    J'ai bien une relation entre ces deux Tables, mais en many-to-many.....

    J'ai donc revue mon architecture dde la BDD, et corrigé mon mapping.....

    Merci à ceux qui ont jeté un coup d'oeil à mon pb

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

Discussions similaires

  1. Problème hibernate one-to-many / many-to-one
    Par valkeke dans le forum Hibernate
    Réponses: 4
    Dernier message: 02/04/2014, 14h06
  2. [Hibernate] Relation one to many
    Par BRAUKRIS dans le forum Hibernate
    Réponses: 2
    Dernier message: 23/08/2006, 11h51
  3. [Hibernate] Mapping one-to-many + cle composite
    Par brainstorm dans le forum Hibernate
    Réponses: 2
    Dernier message: 23/06/2006, 10h51
  4. [hibernate] one-to-many et clé etrangère
    Par K-Kaï dans le forum Hibernate
    Réponses: 27
    Dernier message: 18/05/2006, 10h46
  5. [hibernate] relation one-to-many avec plusieurs clés
    Par seb_fou dans le forum Hibernate
    Réponses: 6
    Dernier message: 16/03/2006, 14h47

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