Bonjour,
je dois effectuer une requête (avec Hibernate) en utilisant la commande LIKE mais sans se soucier de la casse.

En cherchant à droite et à gauche, j'ai trouvé ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Select t_soutien.id,t_soutien.criticite,t_soutien.etat,t_soutien.id_intervenant,
t_soutien.lib_dem,t_soutien.orig_dem,t_soutien.application from T_Dem_S t_soutie
n where 1=1 AND UPPER(t_soutien.lib_dem) like UPPER('%BN%')
Ensuite en cherchant un peu plus, j'ai trouvé un exemple plus performant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
...
AND INSTR(UPPER(t_soutien.lib_dem), UPPER('BN'))
...
Mais le problème c'est que ça ne marche pas. J'ai comme erreur :
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
javax.servlet.ServletException: unexpected AST node: ( near line 1, column 189 [Select t_soutien.id,t_soutien.criticite,t_soutien.etat,t_soutien.id_intervenant,t_soutien.lib_dem,t_soutien.orig_dem,t_soutien.application from tables.T_Dem_S t_soutien where 1=1 AND INSTR(UPPER(t_soutien.lib_dem), UPPER('%BN%'))]
	org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:585)
	org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
	java.security.AccessController.doPrivileged(Native Method)
	javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
	org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
	org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)
 
 
root cause 
 
org.hibernate.hql.ast.QuerySyntaxException: unexpected AST node: ( near line 1, column 189 [Select t_soutien.id,t_soutien.criticite,t_soutien.etat,t_soutien.id_intervenant,t_soutien.lib_dem,t_soutien.orig_dem,t_soutien.application from tables.T_Dem_S t_soutien where 1=1 AND INSTR(UPPER(t_soutien.lib_dem), UPPER('%BN%'))]
	org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59)
	org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:225)
	org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:158)
	org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:109)
	org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:75)
	org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
	org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
	org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
	org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
	org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)
	utils.SearchDem.getDemS(Unknown Source)
	utils.SearchDem.execute(Unknown Source)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:585)
	org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
	java.security.AccessController.doPrivileged(Native Method)
	javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
	org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
	org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)
Pourquoi ?