From 9e94a0f9e07b1d60249b90882b9139b50b159d4d Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Wed, 26 Feb 2025 20:18:15 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E4=B8=AD=E5=BF=83=E7=94=9F=E6=88=90=E8=A7=86=E5=9B=BE=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1365294474297344]资源中心生成视图逻辑优化 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1365294474297344 --- .../cmdb/utils/ResourceViewGenerateSqlUtil.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/neatlogic/framework/cmdb/utils/ResourceViewGenerateSqlUtil.java b/src/main/java/neatlogic/framework/cmdb/utils/ResourceViewGenerateSqlUtil.java index a9440e7..c9bf8f2 100644 --- a/src/main/java/neatlogic/framework/cmdb/utils/ResourceViewGenerateSqlUtil.java +++ b/src/main/java/neatlogic/framework/cmdb/utils/ResourceViewGenerateSqlUtil.java @@ -104,10 +104,19 @@ public class ResourceViewGenerateSqlUtil { private PlainSelect initPlainSelectByMainResourceId(CiVo mainCiVo) { joinedTableMap = new HashMap<>(); equalColumnMap = new HashMap<>(); + String tableName = "cmdb_" + mainCiVo.getId(); + String tableAlias = tableName + "_" + mainCiVo.getName(); + Table cmdbCiIdTable = new Table(TenantContext.get().getDataDbName(), tableName).withAlias(new Alias(tableAlias).withUseAs(false)); + PlainSelect plainSelect = new PlainSelect() + .withFromItem(cmdbCiIdTable); + addJoinTable(cmdbCiIdTable); + String mainTableAlias = mainCiVo.getName(); Table mainTable = new Table("cmdb_cientity").withAlias(new Alias("cientity_" + mainTableAlias).withUseAs(false)); - PlainSelect plainSelect = new PlainSelect() - .withFromItem(mainTable); + Column cmdbCiIdTableCientityIdColumn = new Column(cmdbCiIdTable, "cientity_id"); + Column mainTableIdColumn = new Column(mainTable, "id"); + Join joinMainTable = new Join().withRightItem(mainTable).addOnExpression(new EqualsTo(cmdbCiIdTableCientityIdColumn, mainTableIdColumn)); + plainSelect.addJoins(joinMainTable); addJoinTable(mainTable); Table a = new Table("cmdb_ci").withAlias(new Alias("a").withUseAs(false)); -- Gitee