2

尝试 HQL,总 NHibernate n00b。

public IEnumerable<Log> GetLast(int numRecords, string severity)
{
    var query = _Session.CreateQuery(
        "from Log as l inner join fetch l.UserProfile order by l.TimeStamp desc where l.Severity in (:severities)")
        .SetParameterList("severities", Translator.SeverityOrHigher(severity))
        .SetMaxResults(numRecords)
        .Enumerable<Log>();

    return query;
}

Translator.SeverityOrHigher返回一个IList<string>.

我有一个对象以多对一的方式Log引用一个对象。这些对象分别以和UserProfiles的形式保存在数据库中。LogsUserProfiles

我收到以下异常var query = ...

Exception of type 'Antlr.Runtime.MismatchedTokenException' was thrown.

我什至不知道这意味着什么,而且谷歌搜索并不是特别有用。我不知道 HQL 是否有问题,或者我设置它的方式有问题。任何指导将不胜感激。

4

1 回答 1

2

我已经很久没有使用 NHib 了……你有没有尝试在最后按语句排序?可能它是这样工作的,我总是把它放在最后。

于 2012-04-21T15:10:12.360 回答