From 192d38b64e05c364abf5f7e1c8f389f14e24c2c0 Mon Sep 17 00:00:00 2001 From: nieqiurong Date: Wed, 8 May 2024 17:40:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=A7=9F=E6=88=B7=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E4=BD=BF=E7=94=A8exists=E8=AF=AD=E5=8F=A5=E4=BC=9A?= =?UTF-8?q?=E5=A4=B1=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/baomidou/mybatis-plus/issues/6139 --- .../plugins/inner/BaseMultiTableInnerInterceptor.java | 3 +++ .../plugins/inner/TenantLineInnerInterceptorTest.java | 1 + 2 files changed, 4 insertions(+) diff --git a/mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/inner/BaseMultiTableInnerInterceptor.java b/mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/inner/BaseMultiTableInnerInterceptor.java index 06ff6c348..3bb0420e1 100644 --- a/mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/inner/BaseMultiTableInnerInterceptor.java +++ b/mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/inner/BaseMultiTableInnerInterceptor.java @@ -202,6 +202,9 @@ protected void processSelectItem(SelectItem selectItem, final String whereSegmen processSelectBody(((Select) expression), whereSegment); } else if (expression instanceof Function) { processFunction((Function) expression, whereSegment); + } else if (expression instanceof ExistsExpression) { + ExistsExpression existsExpression = (ExistsExpression) expression; + processSelectBody((Select) existsExpression.getRightExpression(), whereSegment); } } diff --git a/mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/test/extension/plugins/inner/TenantLineInnerInterceptorTest.java b/mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/test/extension/plugins/inner/TenantLineInnerInterceptorTest.java index 337b93cb9..6a1c35196 100644 --- a/mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/test/extension/plugins/inner/TenantLineInnerInterceptorTest.java +++ b/mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/test/extension/plugins/inner/TenantLineInnerInterceptorTest.java @@ -154,6 +154,7 @@ void selectSubSelectExists() { assertSql("SELECT * FROM entity e WHERE EXISTS (select e1.id from entity1 e1 where e1.id = ?)", "SELECT * FROM entity e WHERE EXISTS (SELECT e1.id FROM entity1 e1 WHERE e1.id = ? AND e1.tenant_id = 1) AND e.tenant_id = 1"); + assertSql("SELECT EXISTS (SELECT 1 FROM entity1 e WHERE e.id = ? LIMIT 1)","SELECT EXISTS (SELECT 1 FROM entity1 e WHERE e.id = ? AND e.tenant_id = 1 LIMIT 1)"); /* NOT EXISTS */ assertSql("SELECT * FROM entity e WHERE NOT EXISTS (select e1.id from entity1 e1 where e1.id = ?)",