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