[英]JPA query LIKE does not work
此查询有什么问题: SELECT i FROM Item i WHERE 1 = 1 AND UPPER(i.nome) LIKE %:nome% ORDER BY UPPER(i.nome)
? 我尝试在LIKE'%:nome%'中使用单引号和不使用单引号,但是它不起作用。
Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager:
Exception Description: Syntax error parsing [SELECT i FROM Item i WHERE 1 = 1 AND UPPER(i.nome) LIKE %:nome% ORDER BY UPPER(i.nome)].
[56, 63] The identification variable '%:nome%' is not following the rules for a Java identifier.
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1605)
正如解释在这里 ,你需要包装的价值%
,而设置参数,例如:
query = em.createQuery("SELECT i FROM Item i WHERE 1 = 1 AND UPPER(i.nome) LIKE :nome ORDER BY UPPER(i.nome)");
query.setParameter("nome","%"+nome.toUpperCase()+"%");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.