These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 7 posts ] 
Author Message
 Post subject: recherche sur un set d'objet
PostPosted: Tue Apr 10, 2007 6:39 am 
Newbie

Joined: Tue Apr 10, 2007 5:53 am
Posts: 6
bonjour tout le monde ,
je fais la maintenance d'un projet qui utilise le framwork hibernate;
le pb est ke je dois ajouter un critere de recherche sur un set d'objet;
mais l'objet retourné est l'objet ki contient le set sur laqueel je dois faire la recherche .
comment je peux ecrire ma requete pour ke je reussi ma recherche
merci


Top
 Profile  
 
 Post subject:
PostPosted: Tue Apr 10, 2007 10:14 am 
Newbie

Joined: Thu Apr 05, 2007 5:29 am
Posts: 14
Location: France - Angers / Nantes
Est-ce que tu peux en dire un peu plus ?
sur l'objet en question, sur le set, sur ton ancienne requete et sur le critere que tu dois ajouter ...


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 11, 2007 6:08 am 
Newbie

Joined: Tue Apr 10, 2007 5:53 am
Posts: 6
voila les fichiers de mapping

<class name="com.cia.bo.vols.Vol" table="VOL">

<!-- Cle primaire -->
<id name="id" column="VOL_ID">
<generator class="native"/>
</id>
<!-- attribut spécifiant l'heritage -->
<discriminator column="VOL_TYPE" type="string" length="10"/>

<!-- version de l'enregistrement -->
<timestamp name="version" column="VOL_VERSION" />
<property name="typeMAJ" column="VOL_TYPEMAJ" />

<property name="dateOrigine" column="VOL_DATEORIGINE" />
<many-to-one name="avion" class="com.ram.cia.bo.reference.Avion" column="AVION_ID" not-null="false" outer-join="true" />
<many-to-one name="compagnie" class="com.cia.bo.reference.Compagnie" column="COMPAGNIE_ID" not-null="false" outer-join="true" />
<property name="ata" column="VOL_ATA" />
<set name="setDr" inverse="false" sort="unsorted" cascade="all">
<key column="VOL_ID" />
<one-to-many
class="com.ram.cia.bo.vols.Dr" />
</set>




le probleme c quand je fais un select sur la table vol,le set retourné se compose d'une liste d'objet de type DR et dans chaque objet DR j'ai un autre objet appelé CodeDR et dans l'objet CodeDR il y a le libelle sur lekel je dois faire mon test

voila le xml de mapping de la class dr
<class name="com.cia.bo.vols.Dr" table="DR">

<!-- Cle primaire -->
<id name="id" column="DR_ID">
<generator class="native"/>
</id>

<!-- version de l'enregistrement -->
<timestamp name="version" column="DR_VERSION" />

<property name="duree" column="DR_DUREE" not-null="true"/>
<many-to-one name="codeDR" class="com.cia.bo.reference.CodeDR" column="CODEDR_ID" not-null="false" outer-join="true" />

</class>


et l'autre de la CodeDR
<class name="com.cia.bo.reference.CodeDR" table="CODEDR">

<!-- Cle primaire -->
<id name="id" column="CODEDR_ID">
<generator class="native"/>
</id>

<!-- version de l'enregistrement -->
<timestamp name="version" column="CODEDR_VERSION" />

<property name="libelle" column="CODEDR_LIBELLE" not-null="true"/>
<property name="typeDR" column="CODEDR_TYPEDR" not-null="true"/>

</class>

donc ,comment je peux écrire ma requête pour ke puisse faire le test sur le libelle des CodeDR

et merci.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 11, 2007 10:49 am 
Newbie

Joined: Thu Apr 05, 2007 5:29 am
Posts: 14
Location: France - Angers / Nantes
Je me trompe peut-être, mais j'ai l'impression qu'il manque une ligne many-to-one vers ta table VOL dans ton mapping de DR ?

En gros en SQL ta requete donnerai quelquechose comme ca :
Code:
select * from VOL
where VOL_ID in (
  select VOL_ID from DR where CODEDR_ID in (
    select CODEDR_ID from CODEDR where CODEDR_LIBELLE = 'ta_valeur'
  )
)

ou encore

Code:
select v.*
from VOL v
  inner join DR d
  on v.VOL_ID = d.VOL_ID
    inner join CODEDR c
    on d.CODEDR_ID = c.CODEDR_ID
where c.CODEDR_LIBELLE = 'ta_valeur'


Tu dois pouvoir trouver dans la doc de quoi transformer ca en HQL (chap 14) ou en Criteria (chap 15)


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 11, 2007 2:28 pm 
Newbie

Joined: Tue Apr 10, 2007 5:53 am
Posts: 6
merci pour ton interet ,
j'ai teste cette requete mais ça marche pas
quand tu dit " select vol_id from dr " de kel vol_id tu parle?
la table dr ne contient pa vol_id
merci encore


Top
 Profile  
 
 Post subject:
PostPosted: Thu Apr 12, 2007 2:45 am 
Newbie

Joined: Thu Apr 05, 2007 5:29 am
Posts: 14
Location: France - Angers / Nantes
Hé bien si dans VOL tu as un set de DRs, c'est que dans DR tu as une clé étrangère qui correspond à la clé primaire de VOL (soit VOL_ID si j'ai bien compris)

Sauf peut-être quelques changements de noms de champs, Les requetes devrait fonctionner en les passant directement à ton SGBD ...
Attention, il ne s'agit pas de requete HQL toute faites, mais de SQL à transformer :) !


Top
 Profile  
 
 Post subject:
PostPosted: Thu Apr 12, 2007 7:23 am 
Newbie

Joined: Tue Apr 10, 2007 5:53 am
Posts: 6
ok ,merci je vais la teste


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 7 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.