2009-10-16 5 views
0

У меня есть пейджинг работал с NHibernate:Как получить номер страницы сущностью с NHibernate?

public IEnumerable<Answer> GetAnswers(int page, int pageSize) 
    { 
     return HibernateTemplate.Execute(
      session => 
      { 
       var criteria = session.CreateCriteria(typeof(Answer)); 
       return criteria 
        .SetFirstResult((page - 1) * pageSize) 
        .SetMaxResults(pageSize).List<Answer>(); 
      } 
      ); 
    } 

Теперь моя задача состоит в том, чтобы определить, на котором размещен объект страницы конкретного ответа. Как мне это сделать? Предоставляет ли nhibernate некоторую информацию, такую ​​как индекс строки в наборе результатов?

ответ

1

NHibernate HQL предлагает функцию индекса для этой цели.

public int GetRowIndex(Answer answer) 
{ 
    return HibernateTemplate.Execute(
     session => 
     { 
      return session.CreateQuery(
       "select index(a) from Answer a").UniqueResult<int>(); 
     }); 
} 

Я не проверял код, но вы можете получить больше информации от док NHibernate онлайн (устаревшая версия): https://www.hibernate.org/hib_docs/nhibernate/1.2/reference/en/html_single/#queryhql-expressions

Смежные вопросы