2012-06-25 53 views
0

如何使用HQL檢索單個字符串類型的值。 我嘗試了以下方法,但無法正常工作。HQL查詢返回字符串類型的列

public virtual string GetCityById(int Id) 
    { 
     using (var session = sessionFactory.OpenSession()) 
     { 
      using (var transaction = session.BeginTransaction()) 
      { 
       var queryString = string.Format("SELECT C.CityName FROM {0} AS C WHERE Id=:Id", typeof(T)); 
       return session.CreateQuery(queryString).SetInt32("Id", Id).ToString(); <--Also tried with .SetParameter("Id",Id) 
      } 
     } 
    } 

預期成果是:

NEWYORK

實際輸出爲

選擇的名字從FNHHelper.Entites.Cities其中id =:身份證

回答

1

您正在返回查詢的字符串表示形式。您只需執行查詢並返回其唯一結果:

session.CreateQuery(queryString).SetInt32("Id", Id).UniqueResult(); 

(假定方法名稱與Java版本中的方法名稱相同)。