【问题标题】:Hibernate createSQLQuery does not accept Left functionHibernate createSQLQuery 不接受 Left 函数
【发布时间】:2015-09-10 01:40:19
【问题描述】:

我正在尝试检索特定字段的第一个字符的不同列表,但休眠返回以下错误。

org.hibernate.hql.internal.ast.QuerySyntaxException: 
unexpected token: LEFT near line 1, column 17 [Select DISTINCT LEFT(name,1)

代码

Query query = sessionFactory
                .getCurrentSession()
                .createSQLQuery(
                        "Select DISTINCT LEFT(name,1) from Name 
                         WHERE age = :age");
query.setParameter("age", age);
return query.list();

我发现这个answer 没有帮助。

预期输出

如果我搜索年龄 12,它应该返回年龄值为 12 的姓名的第一个字符,例如:a,b,f,g,k,l,z

【问题讨论】:

    标签: java mysql hibernate


    【解决方案1】:

    改用子字符串。

    Select DISTINCT SUBSTRING(name, 1, 1) from Name WHERE age = :age
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-01
      • 1970-01-01
      • 2017-05-03
      • 2014-09-24
      • 1970-01-01
      • 2020-04-27
      • 1970-01-01
      相关资源
      最近更新 更多