Bonjour,

J'ai cette requête
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
select * from voiture left outer join reservation on(voiture.id=reservation.voiture) 
where voiture.id not in(select voiture.id from voiture, reservation 
where voiture.id = reservation.voiture and 
(dateDeb between '2015-05-03' and '2015-05-04' 
or dateRet between '2015-05-03' and '2015-05-04'))
qui fonctionne très bien lorsque je la tape dans mysql

Je l'ai transposé pour l'utiliser avec hibernate et là erreur.

Class data
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
public class VoitureData {
 
    public static List<Voiture> rechercheVoitureDisponible (String dateDeb,String dateRet)throws Exception{
 
        Transaction trans;
        Voiture voiture=null;
        List<Voiture> lVoitures;
        Session sess;
 
 
        sess = HibernateUtil.getSessionFactory().openSession();
        trans = sess.beginTransaction();
        String requete= "from voiture left outer join reservation on(voiture.id=reservation.voiture) "
        +"where voiture.id not in( "
                +"from voiture, reservation "
                +"where voiture.id = reservation.voiture "
                +"and (dateDeb between '"+dateDeb+"' and '"+dateRet+"' "
        +"or dateRet between '"+dateDeb+"' and '"+dateRet+"'))" ;
 
        lVoitures=  sess.createQuery(requete).list();
        System.out.println(lVoitures.size());
        trans.commit();
 
        return lVoitures;
et j'obtiens cette erreur :

unexpected token: on near line 1, column 42 [from voiture left outer join reservation on(voiture.id=reservation.voiture) where voiture.id not in( from voiture, reservation where voiture.id = reservation.voiture and (dateDeb between '2015-05-03' and '2015-05-04' or dateRet between '2015-05-03' and '2015-05-04'))

Erreur à la colonne 42 qui correspond au "on", les join ne sont pas possible avec hibernate?

Merci