如何在hql中使用字符串左函数

我有这样的SQL查询

select column from table where path = left('INPUTSTRING', length(path));

并试图像这样在hql中实现它,

  return session.createQuery("from Table where Path = left(:input, length(Path))").

query.setParameter("input", inputPath).

.list();

并得到这样的错误

Caused by: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: left near line 1

如何做到这一点?hql中对应的字符串函数是什么?是否有使用标准查询API的解决方案?

回答:

是的,left()不支持MySQLDialect。请参阅API文档上HQL支持的功能列表。

现在您剩下了2个选项。

  1. 使用session.createSQLQuery()方法。
  2. Dialect通过扩展MySQLDialect和创建函数来创建自己的类。这是在hibernate论坛上说这里在博客中很好地解释这里。

以上是 如何在hql中使用字符串左函数 的全部内容, 来源链接: utcz.com/qa/412436.html

回到顶部