2016-07-05 86 views
0

我试图从数据库中查询数据,但我想删除特定列的最后三个字符。该SQL是有效的SQL SERVER,但是当我把它进入休眠的语法,日食显示为标题,SQL上下文如下:org.hibernate.hql.internal.ast.QuerySyntaxException:意外的标记:左第1行第24列

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()导致异常?我怎样才能做到这一点?

+0

我通过使用Hibernate createSQLQuery解决了异常 – Huang

回答

0

你可以使用Hibernate的createSQLQuery来做到这一点。

+0

谢谢你,我已经解决了你告诉我的异常。 – Huang

相关问题