Bonjour à tous,
Je passe actuellement des requêtes SQL en criteria. Le soucis est que ma requête contient un UNION, or je ne sais pas comment mettre ceci en place avec criteria.
Voici ma requête :
Et ce que j'ai deja pu faire de dessus :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT icentre, idep FROM r_centre_de_formation WHERE ietat=1 AND months_between(sysdate, date_cf) > 6 AND icentre NOT IN ((SELECT id_enreg FROM r_alerte WHERE id_fichier='3') UNION (SELECT id_enreglog FROM r_alerte_log WHERE id_fichierlog='3'));
Merci d'avance
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 Criteria crit = getSession().createCriteria(Fichier.class); DetachedCriteria dcrit_alerte = DetachedCriteria.forClass(Alerte.class); dcrit_alerte.add(Restrictions.eq("id_fichier", 3)); DetachedCriteria dcrit_alertelog = DetachedCriteria.forClass(AlerteLog.class); dcrit_alerte.add(Restrictions.eq("id_fichierlog", 3)); Calendar cal = new GregorianCalendar(); cal.add(Calendar.MONTH, -6); crit.add(Restrictions.eq("etatFichier", 1)); crit.add(Restrictions.lt("dateDelivre", cal.getTime() )); crit.setProjection( Projections.property("icentre") ); crit.add(Property.forName("icentre").notIn(dcrit_alerte)); crit.add(Property.forName("icentre").notIn(dcrit_alertelog)); return (List<Fichier>) getHibernateTemplate().findByCriteria((DetachedCriteria) crit);
Partager