BONJOUR


j'ai fais une requête JPQL pour la vérification avant l'insertion d'une nouvelle réservation:

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
 public  Reservation testReservation(String veh,Date Datestar,Date Datefin){
 
        Query q = em.createQuery("SELECT o FROM Reservation o WHERE o.vehicule.matricule=:veh "
                + "AND"
                + "((o.dateDebut BETWEEN :Datestar AND :Datefin)"
                + "OR"
                + "(o.dateFin BETWEEN :Datestar AND :Datefin)"
                + "OR"
                + "(o.dateDebut<:Datestar AND o.dateFin>:Datefin))");
 
        q.setParameter("Datestar", Datestar, TemporalType.DATE);
        q.setParameter("Datefin", Datefin, TemporalType.DATE);
        q.setParameter("veh", veh);
 
       try{
                     return (Reservation) q.getSingleResult();
         } catch(NoResultException e) 
            {     return null;   }
 
 
     }
lorsque s’exécute et fait une réservation dans une période déjà existe une erreur s'affiche:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Caused by: javax.persistence.NonUniqueResultException: More than one result was returned from Query.getSingleResult()
	at org.eclipse.persistence.internal.jpa.EJBQueryImpl.throwNonUniqueResultException(EJBQueryImpl.java:1207)
	at org.eclipse.persistence.internal.jpa.EJBQueryImpl.getSingleResult(EJBQueryImpl.java:722)
	at DAO.IDAO.testReservation(IDAO.java:733)
svp, aidez moi!!