复杂关联表分页查询,传入article的name="a",默认分页大小20,第一页即0:
- SELECT u0.ID,u0.NAME,u0.CODE,u0.CONTENT,u0.STATUS,u0.ORDER_NUM,u0.URS_NAV_ID,u0.URS_CATALOG_ID,
- u2.NAME AS CATALOG_NAME,u2.CODE AS CATALOG_CODE,
- u1.NAME AS NAV_NAME,u1.CODE AS NAV_CODE
- FROM T_URS_ARTICLE u0,T_URS_NAV u1,T_URS_CATALOG u2
- WHERE u0.URS_CATALOG_ID = u2.ID
- AND u0.URS_NAV_ID = u1.ID
- AND ( u0.NAME LIKE ? OR u0.CODE LIKE ? OR u1.CODE LIKE ? OR u2.CODE LIKE ?)
- AND u0.URS_NAV_ID = ?
- ORDER BY u0.CODE DESC
- LIMIT ? OFFSET ?
参数:%a%, %a%, %a%, %a%, 6082f3b3-cc61-4a60-9088-a9c7b4f6e329, 20, 0
- SELECT COUNT(*)
- FROM T_URS_ARTICLE u0,T_URS_NAV u1,T_URS_CATALOG u2
- WHERE u0.URS_CATALOG_ID = u2.ID
- AND u0.URS_NAV_ID = u1.ID
- AND ( u0.NAME LIKE ? OR u0.CODE LIKE ? OR u1.CODE LIKE ? OR u2.CODE LIKE ?)
- AND u0.URS_NAV_ID = ?
参数:%a%, %a%, %a%, %a%, 6082f3b3-cc61-4a60-9088-a9c7b4f6e329
- public Pageable<Map<String, Object>> page(UrsArticle article,Pageable pageable){
- IMultiQuery query = new MultiQueryImpl();
- AliasTable art = query.table(UrsArticle.class);
- AliasTable nav = query.table(UrsNav.class);
- AliasTable catalog = query.table(UrsCatalog.class);
- query.whereEqual(art.c(UrsArticle.T_URS_CATALOG_ID), catalog.c(UrsCatalog.T_ID));
- query.whereEqual(art.c(UrsArticle.T_URS_NAV_ID), nav.c(UrsNav.T_ID));
- query.where(new Condition().andOr(
- new Expression(art.c(UrsArticle.T_NAME), article.getName(), ExpressionType.CDT_Like),
- new Expression(art.c(UrsArticle.T_CODE), article.getName(), ExpressionType.CDT_Like),
- new Expression(nav.c(UrsNav.T_CODE), article.getName(), ExpressionType.CDT_Like),
- new Expression(catalog.c(UrsCatalog.T_CODE), article.getName(), ExpressionType.CDT_Like)
- ));
- query.whereEqual(art.c(UrsArticle.T_URS_NAV_ID), article.getUrsNavId());
- query.orderDesc(art.c(UrsArticle.T_CODE));
- query.createQuery(Map.class,
- art.cs(
- UrsArticle.T_ID,
- UrsArticle.T_NAME,
- UrsArticle.T_CODE,
- UrsArticle.T_CONTENT,
- UrsArticle.T_STATUS,
- UrsCatalog.T_ORDER_NUM,
- UrsCatalog.T_URS_NAV_ID,
- UrsCatalog.T_URS_CATALOG_ID),
- nav.cs().names(UrsNav.T_NAME,UrsNav.T_CODE).asNames("NAV_NAME","NAV_CODE")
- catalog.cs().names(UrsCatalog.T_NAME,UrsCatalog.T_CODE).asNames("CATALOG_NAME","CATALOG_CODE"));
- return ursArticleService.queryPage(query, pageable);
- }