2009-09-09 103 views
2

我需要關於nhibernate查詢的幫助。如果可能的話,我寧願使用Criteria API,否則HQL是可以的。NHibernate查詢具有子集合屬性的對象

我有一個具有Account對象屬性的Employee對象,Account擁有一個Entry對象的集合,並且每個條目都有一個Amount屬性。

我需要一個查詢,它將返回所有擁有帳戶的Entry.Amount總和小於零的僱員。

任何想法?

+0

它可能是唯一的NHibernate的不容易。我做了NH + Linq的混合,讓員工在NH中進行賬戶分析,並使用Linq進行計算。這是我的方法,可能不是最好的,但對我來說沒關係:) – 2009-09-09 05:07:48

回答

0

萬一它有幫助...此問題已使用命名查詢解決。不確定使用Criteria API是否可行。

查詢:

select employee.* from employee 
join (
    select accountid, sum(amount) as balance 
    from entry group by accountid 
) as accountbalances on accountbalances.accountid = employee.account 
where accountbalances.balance < 0 
2

由於here所示:

ICriteria.CreateCriteria(typeof(Customer)) 
.Add(Expression.Eq("Firstname", "Steve")) 
.CreateCriteria("Orders") 
.Add(Expression.Gt("OrderDate", new Datetime.Now))) 
.List<Customer>();