Bonjour,

petit soucis avec un CriteriaBuilder

Je souhaiterais avoir le prédicat suivant

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
and (P1 <> 'ABANDONED_BY_SYSTEM' or (P2 is not null and P1 = 'ABANDONED_BY_SYSTEM'))
Et voici le prédicat généré

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
and (P1 <> 'ABANDONED_BY_SYSTEM' or (P2 is not null) and P1 = 'ABANDONED_BY_SYSTEM')
Et voici ma spécification:

Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
return (root, query, cb) -> {
            Predicate abandonedBySystem = cb.equal(root.get(DossierEntity_.dossierStatus), DossierStatus.ABANDONED_BY_SYSTEM);
            Predicate noGrantingResponse = cb.isNotNull(root.get(DossierEntity_.grantingResponse));
            Predicate noGrantingResponseAndAbandonedBySystem = cb.and(noGrantingResponse, abandonedBySystem);
            Predicate or = cb.or(noGrantingResponseAndAbandonedBySystem, abandonedBySystem.not());
            return or;
        };

Si jamais quelqu'un a une idée elle est la bienvenue.

Merci.