나는 User, Book 및 UserBooks releation 테이블을 가지고있다. 이NHibernate : Group by and Count
|UserID | BookID | Status |
1 34 Read
1 35 Unread
2 34 Read
2 70 Read
2 32 Unread
...................
내 도메인 클래스와 같은 UserBooks 표 사용자, 예약 및 UserBook 있습니다. NHibernate에서 사용자가 가장 많이 읽는 책 10 권과 그 읽기 수를 어떻게 얻을 수 있습니까?
var top10Books = session
.CreateQuery(@"select b.Book
from User u
join fetch u.Books b
where b.Status = :status")
.SetParameter("status", "Read")
.SetMaxResults(10)
.SetResultTransformer(CriteriaSpecification.DistinctRootEntity)
.List<Book>();
을 그리고 여기에 전체 소스 코드에 link있어 :
상위 10 개 읽기 책
| BookID | ReadCount |
34 2
70 1
...............
상태는 "읽음"및 "읽지 않음"이 아닙니까? – yfeldblum