Bonjour,

Je n'arrive pas à écrire en JPQL une requête qui contient des SELECT dans une clause CASE WHEN.
Pouvez vous me dire comment écrire en JPQL la requête suivante ?
(Chaque sous select retourne un résultat unique).

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
 
 
SELECT contenuRL.TITLE, OBJECT_TYPE, bm.TITLE,
        (CASE WHEN contenuRL.BUSINESS_MODEL = 2  
             THEN (SELECT ch.CHANNEL_NAME
                   FROM v_provider_Channel ch
                   WHERE (ch.channel_id = contenuRL.SERVICE_ID)
                  )
             WHEN contenuRL.BUSINESS_MODEL = 3
              THEN (SELECT nt.NETWORK_NM
                    FROM v_provider_Network nt
                    WHERE nt.network_id = contenuRL.SERVICE_ID
                  )
             WHEN contenuRL.BUSINESS_MODEL in (4, 5)
              THEN (SELECT sr.NAME
                    FROM IS_SERVICE sr
                    WHERE sr.ID = contenuRL.SERVICE_ID
                  )
             ELSE NULL  
        END) AS chaine,
contenuRL.code_groupe,
contenuRL.group_definition
FROM IS_RL_LINK_DEF contenuRL
LEFT JOIN is_business_model bm on contenuRL.BUSINESS_MODEL = bm.ID
ORDER BY contenuRL.TITLE, contenuRL.OBJECT_TYPE, bm.TITLE;
Merci .