@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]
该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
FROMuser
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
FROMuser
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
FROMuser
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 FROMuser
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]