bonjour j'aimerais pour la requette jpa suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
@NamedQuery(name = "SessionPersonne.findAllPasVisiteByCategories",query = "SELECT COUNT(p),cat.nomCategorie FROM SessionPersonne s JOIN s.personne p, s.categorie cat , s.session session WHERE session.keySession = :keySession and size(s.passageCollection) = 1 and s.dateCreation  BETWEEN :statDate and :endDate GROUP BY cat.nomCategorie "),
pour size(s.passageCollection) = 1 compter uniquement les passageCollection qui on une date différente jour , mois , année différente .


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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
 
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package fr.ietevents.client.Entity;
 
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
 
/**
 *
 * @author IETEVENTS
 */
@Entity
@Table(name = "Passage")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Passage.findAll", query = "SELECT p FROM Passage p"),
    @NamedQuery(name = "Passage.findByKeyPassage", query = "SELECT p FROM Passage p WHERE p.keyPassage = :keyPassage"),
    @NamedQuery(name = "Passage.findByMomentDePassage", query = "SELECT p FROM Passage p WHERE p.momentDePassage = :momentDePassage"),
    @NamedQuery(name = "Passage.findByPassage", query = "SELECT p FROM Passage p WHERE p.passage = :passage"),
    @NamedQuery(name = "Passage.findByTrouver", query = "SELECT p FROM Passage p WHERE p.trouver = :trouver")})
public class Passage implements Serializable {
 
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "KeyPassage")
    private String keyPassage;
    @Column(name = "MomentDePassage")
    @Temporal(TemporalType.DATE)
    private Date momentDePassage;
    @Size(max = 90)
    @Column(name = "Passage")
    private String passage;
    @Size(max = 1)
    @Column(name = "Trouver")
    private String trouver;
    @ManyToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "KeyHotesse")
    private Hotesse hotesse;
    @ManyToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "KeySessionPersonne")
    private SessionPersonne sessionPersonne;
 
 
    public Passage() {
    }
 
    public Passage(String keyPassage) {
        this.keyPassage = keyPassage;
    }
 
    public String getKeyPassage() {
        return keyPassage;
    }
 
    public void setKeyPassage(String keyPassage) {
        this.keyPassage = keyPassage;
    }
 
    public Date getMomentDePassage() {
        return momentDePassage;
    }
 
    public void setMomentDePassage(Date momentDePassage) {
        this.momentDePassage = momentDePassage;
    }
 
    public String getPassage() {
        return passage;
    }
 
    public void setPassage(String passage) {
        this.passage = passage;
    }
 
    public String getTrouver() {
        return trouver;
    }
 
    public void setTrouver(String trouver) {
        this.trouver = trouver;
    }
 
    public Hotesse getHotesse() {
        return hotesse;
    }
 
    public void setHotesse(Hotesse hotesse) {
        this.hotesse = hotesse;
    }
 
    public SessionPersonne getSessionPersonne() {
        return sessionPersonne;
    }
 
    public void setSessionPersonne(SessionPersonne sessionPersonne) {
        this.sessionPersonne = sessionPersonne;
    }
 
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (keyPassage != null ? keyPassage.hashCode() : 0);
        return hash;
    }
 
    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Passage)) {
            return false;
        }
        Passage other = (Passage) object;
        if ((this.keyPassage == null && other.keyPassage != null) || (this.keyPassage != null && !this.keyPassage.equals(other.keyPassage))) {
            return false;
        }
        return true;
    }
 
    @Override
    public String toString() {
        return "fr.ietevents.client.Entity.Passage[ keyPassage=" + keyPassage + " ]";
    }
 
}