Запрос разбивки на страницы с использованием критериев выбора таблиц - PullRequest
0 голосов
/ 26 октября 2018

Я должен разработать запрос для разбивки на страницы (и сортировки тоже), используя Hibernate.

Я уже разработал это, используя критерий запроса, как показано ниже, и работает также хорошо.

                //normal criteria query  
                Criteria crit = session.createCriteria(User.class);

                if(sortBy == null || sortBy.isEmpty()){
                crit.addOrder(Order.asc("userId"));    
                }else{

                   if("asc".equals(sortOrder)){
                       crit.addOrder(Order.asc(sortBy));                                   
                   }else if("desc".equals(sortOrder)){
                       crit.addOrder(Order.desc(sortBy));      
                   }else{
                       crit.addOrder(Order.asc(sortBy));       
                   }
               }

               crit.setFirstResult((pageNo - 1) * pageSize );
               crit.setMaxResults(pageSize);     

               crit.list()

Но фактический запрос, который я получил от бизнеса, очень сложен, как показано ниже -

select table1.column1,table1.column2,table1.column3,table2.column1,table2.column2,table3.column1 
from table1,table2,table3 
where table1.column1 = table2.column2 
and table2.column1=table3.column2 

Мой вопрос:

Как мне написать paginated query, используя criteria для вышеуказанного запроса?

Мне нужно использовать criteria, поскольку он поддерживает пагинацию с - setFirstResult and setMaxResults

Любое руководство, пожалуйста?

...