Bonjour,
La requête suivante fonctionne :
Avec cette restriction aussi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 // Requête d'extraction des stages private static final String EJBQL = "SELECT thStageStg " + "FROM ThStageStg thStageStg, " + "IN(thStageStg.teDisciplineDscs) dsc, " + "IN(dsc.teConcoursCcrs) ccr, " + "IN(ccr.thEtudiantEtus) etu " + "LEFT JOIN thStageStg.thCandidatCnds cis";
Mais en ajoutant une deuxième restriction de manière à n'avoir que les stages dans lesquels la capacité n'est pas pleine, je n'ai pas d'erreur mais le résultat n'est pas bon, j'ai aussi les stages déjà pourvus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 // Restriction sur les stages de la discipline du concours passé par l'étudiant private static final String[] RESTRICTIONS = { "etu.utiLogin = #{credentials.username}"};
Dans le log, on dirait que la seconde restriction n'est pas prise en compte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 // Restriction sur les stages de la discipline du concours passé par l'étudiant private static final String[] RESTRICTIONS = { "etu.utiLogin = #{credentials.username}", "(SELECT COUNT(cis.cndIdUtilisateur) " + "FROM cis " + "WHERE cis.cndIdUtilisateur = thStageStg.stgIdSession) < #{thStageStg.ssnCapacite}"};
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50Hibernate: select thstagestg0_.stg_id_session as ssn1_9_, thstagestg0_1_.ssn_capacite as ssn2_9_, thstagestg0_1_.ssn_code as ssn3_9_, thstagestg0_1_.ssn_date_debut as ssn4_9_, thstagestg0_1_.ssn_date_fin as ssn5_9_, thstagestg0_1_.ssn_libelle as ssn6_9_, thstagestg0_.stg_id_etablissement as stg2_14_, thstagestg0_.stg_id_conseiller_pedago as stg3_14_ from stamas.th_stage_stg thstagestg0_ inner join stamas.te_session_ssn thstagestg0_1_ on thstagestg0_.stg_id_session=thstagestg0_1_.ssn_id inner join stamas.tj_stg_concerner_dsc_scd tediscipli1_ on thstagestg0_.stg_id_session=tediscipli1_.scd_id_stage inner join stamas.te_discipline_dsc tediscipli2_ on tediscipli1_.scd_id_discipline=tediscipli2_.dsc_id inner join stamas.te_concours_ccr teconcours3_ on tediscipli2_.dsc_id=teconcours3_.ccr_id_discipline inner join stamas.th_etudiant_etu thetudiant4_ on teconcours3_.ccr_id=thetudiant4_.etu_id_concours inner join stamas.th_candidat_cnd thetudiant4_1_ on thetudiant4_.etu_id_candidat=thetudiant4_1_.cnd_id_utilisateur inner join stamas.th_utilisateur_uti thetudiant4_2_ on thetudiant4_.etu_id_candidat=thetudiant4_2_.uti_id_personne inner join stamas.te_personne_prs thetudiant4_3_ on thetudiant4_.etu_id_candidat=thetudiant4_3_.prs_id left outer join stamas.tj_cnd_inscrire_ssn_cis thcandidat5_ on thstagestg0_.stg_id_session=thcandidat5_.cis_id_session left outer join stamas.th_candidat_cnd thcandidat6_ on thcandidat5_.cis_id_candidat=thcandidat6_.cnd_id_utilisateur left outer join stamas.th_utilisateur_uti thcandidat6_1_ on thcandidat6_.cnd_id_utilisateur=thcandidat6_1_.uti_id_personne left outer join stamas.te_personne_prs thcandidat6_2_ on thcandidat6_.cnd_id_utilisateur=thcandidat6_2_.prs_id where thetudiant4_2_.uti_login=? limit ?








Répondre avec citation
Partager