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