org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:> =靠近第1行
16lz
2021-01-22
i got an exception, when i run this query with Hibernate:
我有一个例外,当我用Hibernate运行这个查询时:
String query = "FROM A st, B g "
+ "WHERE st.name = g.name AND st.name LIKE :name AND "
+ "g.id = ANY (SELECT c FROM C "
+ "WHERE CASE WHEN name = 'test' THEN condiction >= :value end)";
try {
return (List) entityManager.createQuery(query)
.setParameter("name", "%" + name + "%")
.setParameter("value", value).getResultList();
} catch (SecurityException | IllegalStateException | RollbackException e) {
LOGGER.info(e.getMessage());
}
return null;
i got an execption:
我有一个execption:
java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: >= near line 1, column 336 ...
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1750)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1677)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1683)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:331)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
Any ideas about it? i use mysql a database. Can i use CASE WHEN THEN in hibernate? The same query work fine on the command line.
关于它的任何想法?我使用mysql数据库。我可以在休眠时使用CASE吗?相同的查询在命令行上正常工作。
Thank Cheers
1 个解决方案
#1
You have the syntax of the CASE
expression incorrect. It should be like this (I think):
您的CASE表达式语法不正确。它应该是这样的(我认为):
WHERE CASE :name
WHEN 'test' THEN condiction >= :value
ELSE false
END
... except that condiction
doesn't make any sense here.
......除了condiction在这里没有任何意义。
At any rate, the syntax for a CASE
expression is given here in the Java EE 6 tutorial:
无论如何,CASE表达式的语法在Java EE 6教程中给出:
- Full Query Language Syntax
完整查询语言语法
更多相关文章
- JS正则表达式中有哪些特殊字符,这些特殊字符又分别表示什么含义?
- 语法错误:从[{id}]开始的表达式[{id}]第2列的令牌'{'无效键?
- Javascript语法中null与“”的误写导致长期困扰的问题终于解决了
- JavaScript学习笔记--语法
- react系列(一)JSX语法、组件概念、生命周期介绍
- RegExp:匹配除Javascript中的正则表达式值之外的所有内容
- Javascript正则表达式对象和美元符号
- 密码强度正则表达式与数字[重复]
- 正则表达式匹配所有字符到某个标记