[Hibernate] Requête avec un LIKE %% case insensitive
	
	
		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:
	
| 12
 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:
	
| 12
 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:
	
| 12
 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 ?:?