HI, I am not sure here, but it could be related that Habilitatiions depend on Profiles.
Werner wg> -----Original Message----- wg> From: SYLVIE PALLUEL [mailto:[EMAIL PROTECTED] wg> Sent: Wednesday, June 01, 2005 10:16 AM wg> To: [email protected] wg> Subject: [castor-dev] RE : [castor-dev] Wich SQL is executing while wg> accessing to a collection wg> wg> wg> Bonjour Werner , wg> wg> I effectively thought it was due to this, so I took it off. wg> But the same thing seems to occur. wg> wg> Here's the mapping file: wg> wg> <class name="fr.cnam.scapin.metier.donnees.agents.profils.Profil" wg> key-generator="MAX" identity="idProfil"> wg> <map-to table="SCA_PROFIL" /> wg> <field name="idProfil" type="integer" required="true"> wg> <sql type="integer" name="PRO_ID" /> wg> <bind-xml name="idProfil" /> wg> </field> wg> <field name="organisme" type="string"> wg> <sql type="char" name="PRO_ORGANISME" /> wg> <bind-xml name="organisme" /> wg> </field> wg> <field name="mnemonique" type="string"> wg> <sql type="char" name="PRO_NOM_PROFIL" /> wg> <bind-xml name="mnemonique" /> wg> </field> wg> <field name="numVersion" type="integer"> wg> <sql type="integer" name="PRO_NUM_VERSION" /> wg> <bind-xml name="numVersion" /> wg> </field> wg> <field name="resume" type="string"> wg> <sql type="char" name="PRO_RESUME" /> wg> <bind-xml name="resume" /> wg> </field> wg> <field name="description" type="string"> wg> <sql type="char" name="PRO_DESCRIPTION" /> wg> <bind-xml name="description" /> wg> </field> wg> <field name="organismePere" type="string"> wg> <sql type="char" name="PRO_ORGANISME_PERE" /> wg> <bind-xml name="organismePere" /> wg> </field> wg> <field name="nomProfilPere" type="string"> wg> <sql type="char" name="PRO_NOM_PROFIL_PERE" /> wg> <bind-xml name="nomProfilPere" /> wg> </field> wg> <field name="listeHabilitation" collection="collection" wg> type="fr.cnam.scapin.metier.donnees.agents.profils.Habilitation"> wg> <sql many-key="PRO_ID" /> wg> <bind-xml name="listeHabilitation" /> wg> </field> wg> </class> wg> <class wg> name="fr.cnam.scapin.metier.donnees.agents.profils.Habilitation" wg> depends="fr.cnam.scapin.metier.donnees.agents.profils.Profil" wg> key-generator="MAX" identity="idHabilitation"> wg> <map-to table="SCA_PROF_HABILITATION" /> wg> <field name="idHabilitation" type="integer" required="true"> wg> <sql type="integer" name="HAB_ID" /> wg> <bind-xml name="idHabilitation" /> wg> </field> wg> <field name="profil" wg> type="fr.cnam.scapin.metier.donnees.agents.profils.Profil"> wg> <sql name="PRO_ID" /> wg> <bind-xml name="profil" /> wg> </field> wg> <field name="action" type="string"> wg> <sql type="char" name="HAB_ACTION" /> wg> <bind-xml name="action" /> wg> </field> wg> <field name="droitAssocie" type="string"> wg> <sql type="char" name="HAB_DROIT" /> wg> <bind-xml name="droitAssocie" /> wg> </field> wg> </class> wg> wg> Sylvie. wg> ___________________ wg> CREDI RA wg> Sylvie Palluel wg> wg> [EMAIL PROTECTED] wg> ___________________ wg> wg> wg> > -----Message d'origine----- wg> > De�: Werner Guttmann [mailto:[EMAIL PROTECTED] wg> > Envoy�: mercredi 1 juin 2005 09:11 wg> > ��: [email protected] wg> > Objet�: RE: [castor-dev] Wich SQL is executing while wg> accessing to a wg> > collection wg> > wg> > Bon jour Sylvie, wg> > wg> > could it be that the field habilitations is defined as lazy ? wg> > wg> > Werner wg> > wg> > wg> -----Original Message----- wg> > wg> From: SYLVIE PALLUEL [mailto:[EMAIL PROTECTED] wg> > wg> Sent: Wednesday, June 01, 2005 9:08 AM wg> > wg> To: [email protected] wg> > wg> Cc: [email protected] wg> > wg> Subject: [castor-dev] Wich SQL is executing while wg> accessing to a wg> > wg> collection wg> > wg> wg> > wg> wg> > wg> Hi, wg> > wg> wg> > wg> Hi, wg> > wg> wg> > wg> I have two classes: the first one is Profil which has a wg> > wg> collection of wg> > wg> Habilitation (may be 500 elements). wg> > wg> wg> > wg> When I want to get , by a jdo query, a Profil and all his wg> > wg> Habilitation(s), wg> > wg> I've seen in MySql log that there are 1 SQL query to get wg> > wg> Profil, and 500 SQL wg> > wg> queries (The criteria is on idHabilitation ) to get the 500 wg> > wg> habilitations wg> > wg> ... wg> > wg> wg> > wg> Is there something wrong in my classes? wg> > wg> Is there a way to get all the habilitations with only one wg> > wg> SQL query (The wg> > wg> criteria should be on idProfil) like this : wg> > wg> wg> > wg> SELECT * FROM SCA_PROF_HABILITATION WHERE wg> > wg> SCA_PROF_HABILITATION.idProfil = wg> > wg> SCA_PROFIL.idProfil; wg> > wg> wg> > wg> Here are the classes Pofil, and Habilitation. wg> > wg> wg> > wg> Thanks for your help. wg> > wg> wg> > wg> wg> > wg> wg> > wg> * @table SCA_PROFIL wg> > wg> * @key-generator MAX wg> > wg> */ wg> > wg> public class Profil { wg> > wg> wg> > wg> /** wg> > wg> * Identifiant unique du Profil wg> > wg> * @required wg> > wg> * @not-null wg> > wg> * @sql-type integer wg> > wg> * @sql-size 10 wg> > wg> * @primary-key wg> > wg> * @sql-name PRO_ID wg> > wg> */ wg> > wg> private int idProfil; wg> > wg> wg> > wg> // les attributs sont en fait la cl� primaire du profil wg> > wg> /** wg> > wg> * numero venant de la carte agent sur 14 caracteres wg> > wg> * @sql-type char wg> > wg> * @sql-size 14 wg> > wg> * @sql-name PRO_ORGANISME wg> > wg> */ wg> > wg> private String organisme; wg> > wg> wg> > wg> /** wg> > wg> * @sql-type char wg> > wg> * @sql-size 26 wg> > wg> * @sql-name PRO_NOM_PROFIL wg> > wg> */ wg> > wg> private String mnemonique; wg> > wg> wg> > wg> /** wg> > wg> * @sql-type integer wg> > wg> * @sql-name PRO_NUM_VERSION wg> > wg> */ wg> > wg> private int numVersion; wg> > wg> wg> > wg> /** wg> > wg> * @sql-type char wg> > wg> * @sql-size 80 wg> > wg> * @sql-name PRO_RESUME wg> > wg> */ wg> > wg> private String resume; wg> > wg> wg> > wg> /** wg> > wg> * @sql-type char wg> > wg> * @sql-size 250 wg> > wg> * @sql-name PRO_DESCRIPTION wg> > wg> */ wg> > wg> private String description; wg> > wg> wg> > wg> // Acces au profilPere ind�pendament de la version wg> > wg> /** wg> > wg> * @sql-type char wg> > wg> * @sql-size 14 wg> > wg> * @sql-name PRO_ORGANISME_PERE wg> > wg> */ wg> > wg> private String organismePere; wg> > wg> wg> > wg> /** wg> > wg> * @sql-type char wg> > wg> * @sql-size 26 wg> > wg> * @sql-name PRO_NOM_PROFIL_PERE wg> > wg> */ wg> > wg> private String nomProfilPere; wg> > wg> wg> > wg> /** wg> > wg> * Collection regroupant les r�f�rences aux wg> > wg> habilitations rattach�es wg> > wg> � ce profil wg> > wg> * @field-type wg> > wg> fr.cnam.scapin.metier.donnees.agents.profils.Habilitation wg> > wg> * @many-key PRO_ID wg> > wg> */ wg> > wg> private java.util.Collection listeHabilitation; wg> > wg> wg> > wg> wg> > wg> wg> > wg> * @table SCA_PROF_HABILITATION wg> > wg> * @depends wg> fr.cnam.scapin.metier.donnees.agents.profils.Profil wg> > wg> * @key-generator MAX wg> > wg> */ wg> > wg> public class Habilitation { wg> > wg> wg> > wg> /** wg> > wg> * Identifiant unique de l'Habilitation wg> > wg> * @required wg> > wg> * @not-null wg> > wg> * @sql-type integer wg> > wg> * @sql-size 10 wg> > wg> * @primary-key wg> > wg> * @sql-name HAB_ID wg> > wg> */ wg> > wg> private int idHabilitation; wg> > wg> wg> > wg> /** wg> > wg> * @sql-index IND_HAB_PRO wg> > wg> * @field-type wg> > wg> fr.cnam.scapin.metier.donnees.agents.profils.Profil wg> > wg> * @sql-name PRO_ID wg> > wg> */ wg> > wg> private Profil profil; wg> > wg> wg> > wg> /** wg> > wg> * @sql-type char wg> > wg> * @sql-size 250 wg> > wg> * @sql-name HAB_ACTION wg> > wg> */ wg> > wg> private String action; wg> > wg> wg> > wg> /** wg> > wg> * @sql-type char wg> > wg> * @sql-size 250 wg> > wg> * @sql-name HAB_DROIT wg> > wg> */ wg> > wg> private String droitAssocie; wg> > wg> wg> > wg> wg> > wg> wg> > wg> Here'a a little part of what Jdo is doing when I'm querying wg> > wg> a Profil and all wg> > wg> his habilitations : wg> > wg> wg> > wg> Requete Jdo : wg> > wg> getProfils() --> SELECT profil FROM wg> > wg> fr.cnam.scapin.metier.donnees.agents.profils.Profil profil wg> > wg> WHERE organisme= wg> > wg> $1 and mnemonique= $2 order by organisme, mnemonique, wg> > wg> numVersion DESC wg> > wg> wg> > wg> getProfils() --> param = null - paramProfil = Technicien - wg> > wg> paramOrganisme = wg> > wg> National wg> > wg> wg> > wg> org.exolab.castor.jdo.engine.SQLEngine - Create SQL: SELECT wg> > wg> SCA_PROFIL.PRO_ID,SCA_PROFIL.PRO_ORGANISME,SCA_PROFIL.PRO_NO wg> > wg> M_PROFIL,SCA wg> > wg> _PROFIL.PRO_NUM_VERSION,SCA_PROFIL.PRO_RESUME,SCA_PROFIL.PRO wg> > wg> _DESCRIPTION wg> > wg> ,SCA_PROFIL.PRO_ORGANISME_PERE,SCA_PROFIL.PRO_NOM_PROFIL_PER wg> > wg> E,SCA_PROF_H wg> > wg> ABILITATION.HAB_ID FROM SCA_PROFIL LEFT OUTER JOIN wg> > wg> SCA_PROF_HABILITATION ON wg> > wg> SCA_PROFIL.PRO_ID=SCA_PROF_HABILITATION.PRO_ID WHERE wg> > wg> (SCA_PROFIL.PRO_ORGANISME = ?1 and wg> > wg> SCA_PROFIL.PRO_NOM_PROFIL = ?2) ORDER BY wg> > wg> SCA_PROFIL.PRO_ORGANISME , SCA_PROFIL.PRO_NOM_PROFIL , wg> > wg> SCA_PROFIL.PRO_NUM_VERSION DESC wg> > wg> wg> > wg> org.exolab.castor.jdo.engine.SQLEngine - Executing the wg> > wg> following SQL: SELECT wg> > wg> SCA_PROFIL.PRO_ID,SCA_PROFIL.PRO_ORGANISME,SCA_PROFIL.PRO_NO wg> > wg> M_PROFIL,SCA wg> > wg> _PROFIL.PRO_NUM_VERSION,SCA_PROFIL.PRO_RESUME,SCA_PROFIL.PRO wg> > wg> _DESCRIPTION wg> > wg> ,SCA_PROFIL.PRO_ORGANISME_PERE,SCA_PROFIL.PRO_NOM_PROFIL_PER wg> > wg> E,SCA_PROF_H wg> > wg> ABILITATION.HAB_ID FROM SCA_PROFIL LEFT OUTER JOIN wg> > wg> SCA_PROF_HABILITATION ON wg> > wg> SCA_PROFIL.PRO_ID=SCA_PROF_HABILITATION.PRO_ID WHERE wg> > wg> (SCA_PROFIL.PRO_ORGANISME = ? and SCA_PROFIL.PRO_NOM_PROFIL wg> > wg> = ?) ORDER BY wg> > wg> SCA_PROFIL.PRO_ORGANISME , SCA_PROFIL.PRO_NOM_PROFIL , wg> > wg> SCA_PROFIL.PRO_NUM_VERSION DESC wg> > wg> wg> > wg> org.exolab.castor.jdo.engine.SQLEngine - Loading class: wg> > wg> fr.cnam.scapin.metier.donnees.agents.profils.Habilitation wg> > wg> using SQL: SELECT wg> > wg> SCA_PROF_HABILITATION.PRO_ID,SCA_PROF_HABILITATION.HAB_ACTIO wg> > wg> N,SCA_PROF_H wg> > wg> ABILITATION.HAB_DROIT FROM SCA_PROF_HABILITATION WHERE wg> > wg> SCA_PROF_HABILITATION.HAB_ID=? wg> > wg> org.exolab.castor.persist.LockEngine - wg> > wg> wg> > wg> Loading class: wg> > wg> fr.cnam.scapin.metier.donnees.agents.profils.Habilitation wg> > wg> with id: 5�412 org.exolab.castor.jdo.engine.SQLEngine - wg> > wg> wg> > wg> Loading class: wg> > wg> fr.cnam.scapin.metier.donnees.agents.profils.Habilitation wg> > wg> using SQL: SELECT wg> > wg> SCA_PROF_HABILITATION.PRO_ID,SCA_PROF_HABILITATION.HAB_ACTIO wg> > wg> N,SCA_PROF_H wg> > wg> ABILITATION.HAB_DROIT FROM SCA_PROF_HABILITATION WHERE wg> > wg> SCA_PROF_HABILITATION.HAB_ID=? wg> > wg> org.exolab.castor.persist.LockEngine - wg> > wg> wg> > wg> Loading class: wg> > wg> fr.cnam.scapin.metier.donnees.agents.profils.Habilitation wg> > wg> with id: 5�413 org.exolab.castor.jdo.engine.SQLEngine - wg> > wg> wg> > wg> Loading class: wg> > wg> fr.cnam.scapin.metier.donnees.agents.profils.Habilitation wg> > wg> using SQL: SELECT wg> > wg> SCA_PROF_HABILITATION.PRO_ID,SCA_PROF_HABILITATION.HAB_ACTIO wg> > wg> N,SCA_PROF_H wg> > wg> ABILITATION.HAB_DROIT FROM SCA_PROF_HABILITATION WHERE wg> > wg> SCA_PROF_HABILITATION.HAB_ID=? wg> > wg> org.exolab.castor.persist.LockEngine - wg> > wg> wg> > wg> Loading class: wg> > wg> fr.cnam.scapin.metier.donnees.agents.profils.Habilitation wg> > wg> with id: 5�414 org.exolab.castor.jdo.engine.SQLEngine - wg> > wg> wg> > wg> Loading class: wg> > wg> fr.cnam.scapin.metier.donnees.agents.profils.Habilitation wg> > wg> using SQL: SELECT wg> > wg> SCA_PROF_HABILITATION.PRO_ID,SCA_PROF_HABILITATION.HAB_ACTIO wg> > wg> N,SCA_PROF_H wg> > wg> ABILITATION.HAB_DROIT FROM SCA_PROF_HABILITATION WHERE wg> > wg> SCA_PROF_HABILITATION.HAB_ID=? wg> > wg> org.exolab.castor.persist.LockEngine - wg> > wg> wg> > wg> Loading class: wg> > wg> fr.cnam.scapin.metier.donnees.agents.profils.Habilitation wg> > wg> with id: 5�415 org.exolab.castor.jdo.engine.SQLEngine - wg> > wg> Loading class: wg> > wg> fr.cnam.scapin.metier.donnees.agents.profils.Habilitation wg> > wg> using SQL: SELECT wg> > wg> SCA_PROF_HABILITATION.PRO_ID,SCA_PROF_HABILITATION.HAB_ACTIO wg> > wg> N,SCA_PROF_H wg> > wg> ABILITATION.HAB_DROIT FROM SCA_PROF_HABILITATION WHERE wg> > wg> SCA_PROF_HABILITATION.HAB_ID=? wg> > wg> org.exolab.castor.persist.LockEngine - wg> > wg> wg> > wg> Loading class: wg> > wg> fr.cnam.scapin.metier.donnees.agents.profils.Habilitation wg> > wg> with id: 5�416 org.exolab.castor.jdo.engine.SQLEngine - wg> > wg> Loading class: wg> > wg> fr.cnam.scapin.metier.donnees.agents.profils.Habilitation wg> > wg> using SQL: SELECT wg> > wg> SCA_PROF_HABILITATION.PRO_ID,SCA_PROF_HABILITATION.HAB_ACTIO wg> > wg> N,SCA_PROF_H wg> > wg> ABILITATION.HAB_DROIT FROM SCA_PROF_HABILITATION WHERE wg> > wg> SCA_PROF_HABILITATION.HAB_ID=? wg> > wg> org.exolab.castor.persist.LockEngine - wg> > wg> wg> > wg> Loading class: wg> > wg> fr.cnam.scapin.metier.donnees.agents.profils.Habilitation wg> > wg> with id: 5�417 org.exolab.castor.jdo.engine.SQLEngine - wg> > wg> wg> > wg> Loading class: wg> > wg> fr.cnam.scapin.metier.donnees.agents.profils.Habilitation wg> > wg> using SQL: SELECT wg> > wg> SCA_PROF_HABILITATION.PRO_ID,SCA_PROF_HABILITATION.HAB_ACTIO wg> > wg> N,SCA_PROF_H wg> > wg> ABILITATION.HAB_DROIT FROM SCA_PROF_HABILITATION WHERE wg> > wg> SCA_PROF_HABILITATION.HAB_ID=? wg> > wg> org.exolab.castor.persist.LockEngine - wg> > wg> Loading class: wg> > wg> fr.cnam.scapin.metier.donnees.agents.profils.Habilitation wg> > wg> with id: 5�418 org.exolab.castor.jdo.engine.SQLEngine - wg> > wg> wg> > wg> Loading class: wg> > wg> fr.cnam.scapin.metier.donnees.agents.profils.Habilitation wg> > wg> using SQL: SELECT wg> > wg> SCA_PROF_HABILITATION.PRO_ID,SCA_PROF_HABILITATION.HAB_ACTIO wg> > wg> N,SCA_PROF_H wg> > wg> ABILITATION.HAB_DROIT FROM SCA_PROF_HABILITATION WHERE wg> > wg> SCA_PROF_HABILITATION.HAB_ID=? wg> > wg> org.exolab.castor.persist.LockEngine - wg> > wg> wg> > wg> Loading class: wg> > wg> fr.cnam.scapin.metier.donnees.agents.profils.Habilitation wg> > wg> with id: 5�419 wg> > wg> . wg> > wg> . wg> > wg> . wg> > wg> wg> > wg> ___________________ wg> > wg> CREDI RA wg> > wg> Sylvie Palluel wg> > wg> wg> > wg> [EMAIL PROTECTED] wg> > wg> ___________________ wg> > wg> wg> > wg> wg> > wg> wg> > wg> wg> > wg> wg> > wg> ------------------------------------------------- wg> > wg> If you wish to unsubscribe from this list, please wg> > wg> send an empty message to the following address: wg> > wg> wg> > wg> [EMAIL PROTECTED] wg> > wg> ------------------------------------------------- wg> > wg> wg> > wg> wg> > wg> > ------------------------------------------------- wg> > If you wish to unsubscribe from this list, please wg> > send an empty message to the following address: wg> > wg> > [EMAIL PROTECTED] wg> > ------------------------------------------------- wg> wg> wg> wg> ------------------------------------------------- wg> If you wish to unsubscribe from this list, please wg> send an empty message to the following address: wg> wg> [EMAIL PROTECTED] wg> ------------------------------------------------- wg> wg> ------------------------------------------------- If you wish to unsubscribe from this list, please send an empty message to the following address: [EMAIL PROTECTED] -------------------------------------------------

