我有这样的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支持的功能列表。
left()
MySQLDialect
现在您剩下了2个选项。
session.createSQLQuery()
Dialect