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

Reply via email to