复杂关联表分页查询,传入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);
}
