How to get page number by entity with NHibernate?

拈花ヽ惹草 提交于 2019-12-25 10:20:11

问题


I have a paging worked with 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>();
           }
           );
    }

Now my task is to determine on which page concrete Answer object is placed. How can i do it? Does nhibernate provide some info like index of row in result set?


回答1:


NHibernate HQL offers an index function for this purpose.

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

I haven't tested the code, but you can get more information from the NHibernate doc online (outdated version): https://www.hibernate.org/hib_docs/nhibernate/1.2/reference/en/html_single/#queryhql-expressions



来源:https://stackoverflow.com/questions/1576933/how-to-get-page-number-by-entity-with-nhibernate

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!