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