2016-07-05 17 views
0

データベースからデータを照会しようとしていますが、特定の列の最後の3文字を削除したいと考えています。 SQLは、SQL Serverには有効であるが、私はHibernateの構文にそれを置くとき、次のように、日食は、タイトルとしてSQLコンテキストを示した:org.hibernate.hql.internal.ast.QuerySyntaxException:予期しないトークン:LEFT、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

関連する問題