diff --git a/mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/TableNameParser.java b/mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/TableNameParser.java index 31a99787b..2db20366b 100644 --- a/mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/TableNameParser.java +++ b/mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/TableNameParser.java @@ -89,11 +89,9 @@ public final class TableNameParser { if (isFromToken(currentToken)) { processFromToken(tokens, index); } else if (shouldProcess(currentToken)) { - String nextToken = tokens[index++]; - considerInclusion(nextToken); - if (moreTokens(tokens, index)) { - nextToken = tokens[index++]; + String nextToken = tokens[index++]; + considerInclusion(nextToken); } } } diff --git a/mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/core/toolkit/TableNameParserTest.java b/mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/core/toolkit/TableNameParserTest.java index c036313a4..1b322ac39 100644 --- a/mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/core/toolkit/TableNameParserTest.java +++ b/mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/core/toolkit/TableNameParserTest.java @@ -476,6 +476,12 @@ public class TableNameParserTest { String sql = "select * -- I like stars \n from foo f -- I like foo \n join bar b -- I also like bar \n on f.id = b.id -- comment ending with update"; assertThat(new TableNameParser(sql).tables()).isEqualTo(asSet("foo","bar")); } + + @Test + void testSelectForUpdate() { + //TODO 暂时解决不能使用的问题,当碰到for update nowait这样的,后面的nowait会被当做成表但也不是很影响苗老板的动态表过滤. + assertThat(new TableNameParser("select * from mp where id = 1 for update").tables()).isEqualTo(asSet("mp")); + } private static Collection asSet(String... a) { Set result = new HashSet();