org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:LEFT靠近第1行,第24列

时间:2016-07-05 07:23:55

标签: java sql hibernate sql-server-2012

我正在尝试从数据库查询数据,但我想删除特定列的最后三个字符。 SQL在SQL SERVER中很有效但是当我把它放到hibernate的语法中时,eclipse显示为标题,SQL上下文如下:

String sql = "select distinct d.code,LEFT(d.VILLAGE, (LEN(d.VILLAGE)-3)) as village_name from DistrictInfo d where d.county=:region and d.town=:town and LEN(d.VILLAGE) !=0";
Query q = session.createQuery(sql);
q.setString("region", region);
q.setString("town", town)

具体例外情况如下:

org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: LEFT near line 1, column 24 [select distinct d.code,LEFT(d.VILLAGE, (LEN(d.VILLAGE)-3)) as village_name from org.nergis.orm.model.DistrictInfo d where d.county=:region and d.town=:town and LEN(d.VILLAGE) !=0]

LEFT()会导致异常吗?我怎样才能做对吗?

1 个答案:

答案 0 :(得分:0)

你可以使用Hibernate createSQLQuery。