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
  • 完整查询语言语法

更多相关文章

  1. JS正则表达式中有哪些特殊字符,这些特殊字符又分别表示什么含义?
  2. 语法错误:从[{id}]开始的表达式[{id}]第2列的令牌'{'无效键?
  3. Javascript语法中null与“”的误写导致长期困扰的问题终于解决了
  4. JavaScript学习笔记--语法
  5. react系列(一)JSX语法、组件概念、生命周期介绍
  6. RegExp:匹配除Javascript中的正则表达式值之外的所有内容
  7. Javascript正则表达式对象和美元符号
  8. 密码强度正则表达式与数字[重复]
  9. 正则表达式匹配所有字符到某个标记

随机推荐

  1. 从JQuery文件输入中获取数据
  2. 模态的jQuery动态高度宽度
  3. 如何使用jQuery捕获对href值的单击
  4. 使用jquery从mysql数据库加载数据
  5. 使用Next设置选定的选项
  6. 如何在使用jquery验证和自定义错误放置时
  7. 为$ .plugin()用法准备插件而不是$(selector
  8. 目前最好用的“点击复制”功能,兼容主流浏
  9. jQuery自动完成在AutoPostBack上丢失文本
  10. jquery插件ztree的总结