复杂关联表分页查询,传入article的name="a",默认分页大小20,第一页即0:

Sql代码
  1. SELECT u0.ID,u0.NAME,u0.CODE,u0.CONTENT,u0.STATUS,u0.ORDER_NUM,u0.URS_NAV_ID,u0.URS_CATALOG_ID,  
  2.                u2.NAME AS CATALOG_NAME,u2.CODE AS CATALOG_CODE,  
  3.                        u1.NAME AS NAV_NAME,u1.CODE AS NAV_CODE   
  4. FROM T_URS_ARTICLE u0,T_URS_NAV u1,T_URS_CATALOG u2   
  5. WHERE  u0.URS_CATALOG_ID = u2.ID   
  6. AND  u0.URS_NAV_ID = u1.ID   
  7. AND ( u0.NAME LIKE ? OR  u0.CODE LIKE ? OR  u1.CODE LIKE ? OR  u2.CODE LIKE ?)    
  8. AND  u0.URS_NAV_ID = ?   
  9. ORDER BY u0.CODE DESC   
  10. LIMIT ? OFFSET ?    

            参数:%a%, %a%, %a%, %a%, 6082f3b3-cc61-4a60-9088-a9c7b4f6e329, 20, 0

Sql代码
  1. SELECT  COUNT(*)    
  2. FROM T_URS_ARTICLE u0,T_URS_NAV u1,T_URS_CATALOG u2   
  3. WHERE  u0.URS_CATALOG_ID = u2.ID   
  4. AND  u0.URS_NAV_ID = u1.ID   
  5. AND ( u0.NAME LIKE ? OR  u0.CODE LIKE ? OR  u1.CODE LIKE ? OR  u2.CODE LIKE ?)    
  6. AND  u0.URS_NAV_ID = ?   

            参数:%a%, %a%, %a%, %a%, 6082f3b3-cc61-4a60-9088-a9c7b4f6e329

Java代码
  1. public Pageable<Map<String, Object>> page(UrsArticle article,Pageable pageable){  
  2.   
  3.         IMultiQuery query = new MultiQueryImpl();  
  4.         AliasTable art = query.table(UrsArticle.class);  
  5.         AliasTable nav = query.table(UrsNav.class);  
  6.         AliasTable catalog = query.table(UrsCatalog.class);  
  7.   
  8.         query.whereEqual(art.c(UrsArticle.T_URS_CATALOG_ID), catalog.c(UrsCatalog.T_ID));  
  9.         query.whereEqual(art.c(UrsArticle.T_URS_NAV_ID), nav.c(UrsNav.T_ID));  
  10.         query.where(new Condition().andOr(  
  11.                 new Expression(art.c(UrsArticle.T_NAME), article.getName(), ExpressionType.CDT_Like),  
  12.                 new Expression(art.c(UrsArticle.T_CODE), article.getName(), ExpressionType.CDT_Like),  
  13.                 new Expression(nav.c(UrsNav.T_CODE), article.getName(), ExpressionType.CDT_Like),  
  14.                 new Expression(catalog.c(UrsCatalog.T_CODE), article.getName(), ExpressionType.CDT_Like)  
  15.         ));  
  16.         query.whereEqual(art.c(UrsArticle.T_URS_NAV_ID), article.getUrsNavId());  
  17.         query.orderDesc(art.c(UrsArticle.T_CODE));  
  18.     
  19.         query.createQuery(Map.class,   
  20.             art.cs(  
  21.                     UrsArticle.T_ID,  
  22.                     UrsArticle.T_NAME,  
  23.                     UrsArticle.T_CODE,  
  24.                     UrsArticle.T_CONTENT,  
  25.                     UrsArticle.T_STATUS,  
  26.                     UrsCatalog.T_ORDER_NUM,  
  27.                     UrsCatalog.T_URS_NAV_ID,  
  28.                     UrsCatalog.T_URS_CATALOG_ID),  
  29.             nav.cs().names(UrsNav.T_NAME,UrsNav.T_CODE).asNames("NAV_NAME","NAV_CODE")  
  30.             catalog.cs().names(UrsCatalog.T_NAME,UrsCatalog.T_CODE).asNames("CATALOG_NAME","CATALOG_CODE"));  
  31.            
  32.         return ursArticleService.queryPage(query, pageable);  
  33. }  
Copyright © objectsql.com 2021 闽ICP备17009107号-3

闽公网安备 35020302035600号