2012-06-25 56 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版本中的方法名称相同)。