【问题标题】:HQL Query that returns column of type string返回字符串类型列的 HQL 查询
【发布时间】:2012-06-25 13:48:59
【问题描述】:

如何使用 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)
            }
        }
    }

预期输出为:

纽约

实际输出为:

从 FNHHelper.Entites.Cities WHERE Id=:Id 中选择名称

【问题讨论】:

    标签: c#-4.0 hql nhibernate-criteria


    【解决方案1】:

    您正在返回查询的字符串表示形式。您只需要执行查询,并返回其唯一结果:

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

    (假设方法名与Java版本相同)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-16
      • 2013-09-14
      • 2016-07-21
      相关资源
      最近更新 更多