【问题标题】:return objects that are not in the mapping file from nhibernate hql从 nhibernate hql 返回不在映射文件中的对象
【发布时间】:2010-11-02 09:32:32
【问题描述】:

标题几乎说明了我正在尝试做的事情。我有选择案例的休眠 hql

select application.SubmissionDate, count(candidates)
from Application as application group by application.SubmissionDate

我想将此查询的返回值放入一个名为“CountPerDay”对象的对象(不在 nhibernate 映射文件中)

class CountPerDay {
public DateTime Date,
public int Count
}

nHibernate 是否有某种内置功能/方法来执行此操作?

【问题讨论】:

    标签: nhibernate orm hql


    【解决方案1】:

    您应该查看Ad-hoc mapping 的 NHibernate:

    string hql = @"select application.SubmissionDate as Date, count(candidates) as Count 
                   from Application as application 
                   group by application.SubmissionDate";
    
    var count = session.CreateQuery(hql)
                       .SetResultTransformer(Transformers.AliasToBean(typeof(CountPerDay)))
                       .List<CountPerDay>();
    

    【讨论】:

    • 谢谢!更新了代码并将 CountPerDay.Count 更改为 long 并且它可以工作。
    • 可能值得一提的是transformation only works if you query using a native SQL query(不是HQL)。在@rebelliard 的回答中,他打电话给session.CreateQuery(hql)。这仍然会抱怨该表未映射。不过调用session.CreateSqlQuery(...) 应该可以。
    猜你喜欢
    • 2011-09-28
    • 1970-01-01
    • 2019-07-06
    • 2015-04-05
    • 1970-01-01
    • 1970-01-01
    • 2018-05-30
    • 2021-02-17
    • 2011-10-26
    相关资源
    最近更新 更多