yulichang / mybatis-plus-join

支持连表查询的mybatis-plus,mybatis-plus风格的连表操作提供wrapper.leftJoin(),wrapper.rightJoin()等操作
https://yulichang.github.io/mybatis-plus-join-doc/
Apache License 2.0
971 stars 113 forks source link

复用wrapper,当增加新的查询条件后,sql未重新生成 #123

Open agui001 opened 1 month ago

agui001 commented 1 month ago

该Pull Request关联的Issue

修改描述

复用wrapper,当增加新的查询条件后,sql未重新生成

测试用例

@Test public void testReuseWrapper() { MPJLambdaWrapper wrapper = new MPJLambdaWrapper() .select(UserDO::getName); List dos = userService.list(wrapper); System.out.println(1); wrapper.select(UserDO::getAddressId); dos = userService.list(wrapper); }

修复效果的截屏

修复前的sql输出日志: Creating a new SqlSession SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@58a2b917] was not registered for synchronization because synchronization is not active JDBC Connection [HikariProxyConnection@1328705686 wrapping conn0: url=jdbc:h2:mem:test user=ROOT] will not be managed by Spring ==> Preparing: SELECT t.name FROM user t WHERE t.del = false ==> Parameters: <== Columns: NAME <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Total: 22 Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@58a2b917] 1 Creating a new SqlSession SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3a3ed300] was not registered for synchronization because synchronization is not active JDBC Connection [HikariProxyConnection@972404515 wrapping conn0: url=jdbc:h2:mem:test user=ROOT] will not be managed by Spring ==> Preparing: SELECT t.name FROM user t WHERE t.del = false =====================这里的sql没有查询t.address_id字段======================== ==> Parameters: <== Columns: NAME <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Total: 22 Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3a3ed300]

修复后的sql输出日志: Creating a new SqlSession SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@58a2b917] was not registered for synchronization because synchronization is not active JDBC Connection [HikariProxyConnection@1328705686 wrapping conn0: url=jdbc:h2:mem:test user=ROOT] will not be managed by Spring ==> Preparing: SELECT t.name FROM user t WHERE t.del = false ==> Parameters: <== Columns: NAME <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Row: {"aa":"aaa","bb":"bbb"} <== Total: 22 Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@58a2b917] 1 Creating a new SqlSession SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3a3ed300] was not registered for synchronization because synchronization is not active JDBC Connection [HikariProxyConnection@972404515 wrapping conn0: url=jdbc:h2:mem:test user=ROOT] will not be managed by Spring ==> Preparing: SELECT t.name, t.address_id FROM user t WHERE t.del = false ==> Parameters: <== Columns: NAME, ADDRESS_ID <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Row: {"aa":"aaa","bb":"bbb"}, 1 <== Total: 22 Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3a3ed300]