Bonjour,

je travail actuellement sur un projet et je n'arrive pas à récupérer via une requête en HQL si je ne me trompe pas, des résultats :

Voici ci-dessous la requête du dao :

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
  public List<Account>getCustomerAccount(String idCustomer){
        int idC = Integer.parseInt(idCustomer);
        LOGGER.log(Level.INFO, " parametre : " + idCustomer);
        LOGGER.log(Level.INFO, "recherche de l'erreur");
        String req = "from Account a where a.client.id = :client ";
        LOGGER.log(Level.INFO, "requete = " + req );
        Client c = new Client();
        c.setId(idC);
        Query query = sessionFactory.getCurrentSession().createQuery(req);
        query.setParameter("client", idC);
        LOGGER.log(Level.INFO, "requete tesssssssssssssssssssssst");
        List<Account> result = query.getResultList();
        LOGGER.log(Level.INFO, "account : " + result.size());
        return result;
    }
je vous met aussi les beans de Account (lié à la table sur laquelle je souhaite requêter ) et Client qui est le type de l'attribut représentant l'identifiant du client dans le bean account :

- Account :

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
package edu.sodteam.bean;
 
import javax.persistence.*;
 
@Entity
@Table(name="account")
public class Account {
 
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "iban")
    private String iban;
 
    @JoinColumn(name="id_client")
    @ManyToOne
    private Client client;
 
    @Column(name="overdraftallowed")
    private Double overdraftallowed;
 
    @JoinColumn(name="idtypecodeaccount")
    @ManyToOne
    private AccountType accountType;
 
    @JoinColumn(name="id_balance")
    @ManyToOne
    private Balance balance;
 
    public String getIban() {
        return iban;
    }
    public void setIban(String iban) {
        this.iban = iban;
    }
    public Client getClient() {
        return client;
    }
    public void setClient(Client client) {
        this.client = client;
    }
    public Double getOverdraftallowed() {
        return overdraftallowed;
    }
    public void setOverdraftallowed(Double overdraftallowed) {
        this.overdraftallowed = overdraftallowed;
    }
    public AccountType getAccountType() {
        return accountType;
    }
    public void setAccountType(AccountType accountType) {
        this.accountType = accountType;
    }
    public Balance getBalance() {
        return balance;
    }
    public void setBalance(Balance balance) {
        this.balance = balance;
    }
 
    public String toString() {
        return "Account [iban=" + iban + ", overdraftAllowed=" + overdraftallowed + "]";
    }
}


- Client :


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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
package edu.sodteam.bean;
 
import javax.persistence.*;
import java.util.Date;
 
 
@Entity
@Table(name="client")
public class Client {
 
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="id_client")
    private Integer id;
 
    @Column(name="gender")
    private String gender;
 
    @Column(name="statut")
    private String statut;
 
    @Column(name="first_name")
    private String first_name;
 
    @Column(name="last_name")
    private String last_name;
 
    @Column(name="income")
    private float income;
 
    @Column(name="city")
    private String city;
 
    @Column(name="street")
    private String street;
 
    @Column(name="postal_code")
    private String postal_code;
 
    @Column(name="phone_number")
    private String phone_number;
 
    @Column(name="mail")
    private String mail;
 
    @Column(name="birthday")
    private Date birthday;
 
    @Column(name="birthplace_city")
    private String birthplace_city;
 
    @Column(name="nationality")
    private String nationality;
 
    @JoinColumn(name="id_status")
    @ManyToOne
    private Status status;
 
    @JoinColumn(name="id_workgroup")
    @ManyToOne
    private WorkGroup workGroup;
 
    @JoinColumn(name="id_user")
    @ManyToOne
    private User user;
 
    @Column(name="abnormal_transaction_service")
    private boolean abnormalTransactionService;
 
    public Client(String gender, String statut, String first_name, String last_name, float income, String city, String street, String postal_code, String phone_number, String mail, Date birthday, String birthplace_city, String nationality) {
        this.gender = gender;
        this.statut = statut;
        this.first_name = first_name;
        this.last_name = last_name;
        this.income = income;
        this.city = city;
        this.street = street;
        this.postal_code = postal_code;
        this.phone_number = phone_number;
        this.mail = mail;
        this.birthday = birthday;
        this.birthplace_city = birthplace_city;
        this.nationality = nationality;
    }
 
    public Client() {
    }
 
    public Integer getId() {
        return id;
    }
 
    public void setId(Integer id) {
        this.id = id;
    }
 
    public String getGender() {
        return gender;
    }
 
    public void setGender(String gender) {
        this.gender = gender;
    }
 
    public String getStatut() {
        return statut;
    }
 
    public void setStatut(String statut) {
        this.statut = statut;
    }
 
    public String getFirstname() {
        return first_name;
    }
 
    public void setFirstname(String first_name) {
        this.first_name = first_name;
    }
 
    public String getLastname() {
        return last_name;
    }
 
    public void setLastname(String last_name) {
        this.last_name = last_name;
    }
 
    public float getIncome() {
        return income;
    }
 
    public void setIncome(float income) {
        this.income = income;
    }
 
    public String getCity() {
        return city;
    }
 
    public void setCity(String city) {
        this.city = city;
    }
 
    public String getStreet() {
        return street;
    }
 
    public void setStreet(String street) {
        this.street = street;
    }
 
    public String getPostalcode() {
        return postal_code;
    }
 
    public void setPostalcode(String postal_code) {
        this.postal_code = postal_code;
    }
 
    public String getPhonenumber() {
        return phone_number;
    }
 
    public void setPhonenumber(String phone_number) {
        this.phone_number = phone_number;
    }
 
    public String getMail() {
        return mail;
    }
 
    public void setMail(String mail) {
        this.mail = mail;
    }
 
    public Date getBirthday() {
        return birthday;
    }
 
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
 
    public String getBirthplacecity() {
        return birthplace_city;
    }
 
    public void setBirthplacecity(String birthplace_city) {
        this.birthplace_city = birthplace_city;
    }
 
    public String getNationality() {
        return nationality;
    }
 
    public void setNationality(String nationality) {
        this.nationality = nationality;
    }
 
    public Status getStatus() {
        return status;
    }
 
    public void setStatus(Status status) {
        this.status = status;
    }
 
    public WorkGroup getWorkGroup() {
        return workGroup;
    }
 
    public void setWorkGroup(WorkGroup workGroup) {
        this.workGroup = workGroup;
    }
 
    public User getUser() {
        return user;
    }
 
    public void setUser(User user) {
        this.user = user;
    }
 
    public boolean isAbnormalTransactionService() {
        return abnormalTransactionService;
    }
 
    public void setAbnormalTransactionService(boolean abnormalTransactionService) {
        this.abnormalTransactionService = abnormalTransactionService;
    }
}

voilà donc ma requête ne fonctionne pas est quand je déploie le projet sous glassfish j'ai l'erreur suivante :

org.postgresql.util.PSQLException: ERROR: operator does not exist: character varying = integer
Indice : No operator matches the given name and argument type(s). You might need to add explicit type casts.
Position : 176


L'erreur dans la log glassfish :

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
org.postgresql.util.PSQLException: ERROR: operator does not exist: character varying = integer
  Indice*: No operator matches the given name and argument type(s). You might need to add explicit type casts.
  Position*: 176
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2182)
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1911)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:173)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:615)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:465)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:350)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.postgresql.ds.jdbc23.AbstractJdbc23PooledConnection$StatementHandler.invoke(AbstractJdbc23PooledConnection.java:453)
	at com.sun.proxy.$Proxy392.executeQuery(Unknown Source)
	at com.sun.gjc.spi.jdbc40.PreparedStatementWrapper40.executeQuery(PreparedStatementWrapper40.java:642)
	at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:70)
	at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.getResultSet(AbstractLoadPlanBasedLoader.java:434)
	at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeQueryStatement(AbstractLoadPlanBasedLoader.java:186)
	at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:121)
	at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:86)
	at org.hibernate.loader.entity.plan.AbstractLoadPlanBasedEntityLoader.load(AbstractLoadPlanBasedEntityLoader.java:167)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:4019)
	at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:508)
	at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:478)
	at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:219)
	at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:278)
	at org.hibernate.event.internal.DefaultLoadEventListener.doOnLoad(DefaultLoadEventListener.java:121)
	at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:89)
	at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1222)
	at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1105)
	at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:646)
	at org.hibernate.type.EntityType.resolve(EntityType.java:431)
	at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:151)
	at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:125)
	at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1146)
	at org.hibernate.loader.Loader.processResultSet(Loader.java:1005)
	at org.hibernate.loader.Loader.doQuery(Loader.java:943)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:349)
	at org.hibernate.loader.Loader.doList(Loader.java:2615)
	at org.hibernate.loader.Loader.doList(Loader.java:2598)
	at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2430)
	at org.hibernate.loader.Loader.list(Loader.java:2425)
	at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:502)
	at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:371)
	at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:216)
	at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1473)
	at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1426)
	at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1398)
	at org.hibernate.Query.getResultList(Query.java:427)
	at edu.sodteam.dao.AccountDaoImpl.getCustomerAccount(AccountDaoImpl.java:96)
	at edu.sodteam.service.ServiceConsultAccount.getCustomerAccount(ServiceConsultAccount.java:32)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
	at com.sun.proxy.$Proxy418.getCustomerAccount(Unknown Source)
	at edu.sodteam.controller.ConsultAccountController.showCustomerAccount(ConsultAccountController.java:55)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:220)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:134)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:116)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
	at java.lang.Thread.run(Thread.java:745)

J'ai l'impression que ça vient du coté de la base de données, mais travaillant en groupe , d'autres membres n'ont pas ce problème alors qu'on utilise la même base de donnée (sur un serveur distant) je suis donc très mitigé quant à l'origine du problème et je bloque dessus depuis un moment, si quelqu'un à une explication vis à vis de ce problème, je lui en serai reconnaissant.