Bonjour
Je suis entrain de travailler sur une appli en Spring et j 'aié un probleme de requete qui passe bien mais sans récupérer d'objet
c'est une requete en jointure sur 2 tables une table Chambre et une table LigneReservation qui comprend 2 colonnes debut et fin(une chambre a une date debut de réservation et une date de fin de réservation
et ce que je voudrais c'est interroger c'est rechercher les chambres qui sont libres à une date donnée c'est à dire une chambre selon une certaine date ne figurant pas dans la ligneReservation
voici ma requete
voici mon formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 @Override public Collection<Chambre> getChambreLibre(Date dateDebut, Date dateFin) { Query qr= em.createQuery("select c from Chambre c left outer join c.ligneResa lr where:debut <= lr.fin and :fin >= lr.fin and lr.chambre is NULL "); qr.setParameter("debut", dateDebut, TemporalType.DATE); qr.setParameter("fin", dateFin, TemporalType.DATE); return qr.getResultList();}voici mon controleur
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 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@taglib uri="http://www.springframework.org/tags/form" prefix="f"%> <div> <f:form modelAttribute="ligne" method="get" action="chambreLibre"> <!-- date debut <input type="text" name="dateDebut" /> date fin<input type="text" name="dateFin"/>--> <f:input path="debut" /> <f:errors path="debut" cssClass="errors"></f:errors> <f:input path="fin" /> <f:errors path="fin" cssClass="errors"></f:errors> <input type="submit" value="ok"> </f:form> </div>
ça fait un petit moment que je tourne en rond quelqu'un aurait une idée lumineuse?
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 @RequestMapping(value = "/chambreLibre") public String getChambreLibre(LigneReservation lr, Model model, BindingResult result, Date dateDebut, Date dateFin) { /* * DateValidator dv = new DateValidator(); dv.validate(lr, result); if * (result.hasErrors()) { return "selectionChambre"; } else * model.addAttribute("ligne", new LigneReservation()); * model.addAttribute("chambre", new Chambre()); * model.addAttribute("chambreLibre", metier.getChambreLibre(dateDebut, * dateFin)); return "panier"; */ model.addAttribute("ligne", new LigneReservation()); model.addAttribute("chambreLibre", metier.getChambreLibre(dateDebut, dateFin)); return "chambreLibre";
Partager