2012-04-21 69 views
1

嘗試HQL,總的NHibernate的n00b。這個HQL查詢有什麼問題?

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是否有問題,或者我設置的方式。任何指導將不勝感激。

+0

這是一個列表,它不是空的。 – 2012-04-21 15:01:51

回答

2

我沒有用NHib的年齡......你試圖通過聲明在最後把訂單?可能它是這樣工作的,我總是把它放在最後。

+0

這樣做。我希望錯誤信息不那麼神祕。 – 2012-04-21 15:12:24

+0

對,那個異常消息不是很有用:( – 2012-04-21 15:17:26