Requête MySQL avec Hibernate
Bonjour,
J'ai cette requête
Code:
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:
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