如何在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个选项。
- 使用
session.createSQLQuery()
方法。 Dialect
通过扩展MySQLDialect
和创建函数来创建自己的类。这是在hibernate论坛上说这里在博客中很好地解释这里。
以上是 如何在hql中使用字符串左函数 的全部内容, 来源链接: utcz.com/qa/412436.html