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]
-------------------------------------------------

Reply via email to