@@ -251,7 +251,7 @@ public void reloadProject(SqlSession sqlSession, ClassLoader loader, String pack
251251 method .invoke (tbExample4 .getObject (), true , exampleThen );
252252
253253 sql = SqlHelper .getFormatMapperSql (tbMapper .getObject (), "selectByExample" , tbExample4 .getObject ());
254- Assert .assertEquals (sql , "select id, field1, field2 from tb order by field1" );
254+ Assert .assertEquals (sql , "select id, field1, field2 from tb WHERE ( field1 = 'f3' ) " );
255255
256256 // 2. when false
257257 ObjectUtil tbExample5 = new ObjectUtil (loader , packagz + ".TbExample" );
@@ -284,7 +284,7 @@ public void reloadProject(SqlSession sqlSession, ClassLoader loader, String pack
284284 }
285285 method .invoke (tbExample6 .getObject (), true , exampleThen , exampleOtherwise );
286286 sql = SqlHelper .getFormatMapperSql (tbMapper .getObject (), "selectByExample" , tbExample6 .getObject ());
287- Assert .assertEquals (sql , "select id, field1, field2 from tb order by field1" );
287+ Assert .assertEquals (sql , "select id, field1, field2 from tb WHERE ( field1 = 'f3' ) " );
288288
289289 ObjectUtil tbExample7 = new ObjectUtil (loader , packagz + ".TbExample" );
290290
@@ -297,7 +297,7 @@ public void reloadProject(SqlSession sqlSession, ClassLoader loader, String pack
297297 }
298298 method .invoke (tbExample7 .getObject (), false , exampleThen , exampleOtherwise );
299299 sql = SqlHelper .getFormatMapperSql (tbMapper .getObject (), "selectByExample" , tbExample7 .getObject ());
300- Assert .assertEquals (sql , "select id, field1, field2 from tb order by field2 " );
300+ Assert .assertEquals (sql , "select id, field1, field2 from tb WHERE ( field1 = 'f2' ) " );
301301 }
302302 });
303303 }
@@ -433,10 +433,13 @@ public TestExampleWhenInvocationHandler(Integer type) {
433433 public Object invoke (Object proxy , Method method , Object [] args ) throws Throwable {
434434 if (method .getName ().equals ("example" )) {
435435 ObjectUtil tbExample = new ObjectUtil (args [0 ]);
436+ // !!!! 不要使用orderBy 动态代理后对于可变参数判断有问题
436437 if (type == 0 ) {
437- tbExample .invoke ("orderBy" , "field1" );
438+ ObjectUtil criteria = new ObjectUtil (tbExample .invoke ("or" ));
439+ criteria .invoke ("andField1EqualTo" , "f3" );
438440 } else {
439- tbExample .invoke ("orderBy" , "field2" );
441+ ObjectUtil criteria = new ObjectUtil (tbExample .invoke ("or" ));
442+ criteria .invoke ("andField1EqualTo" , "f2" );
440443 }
441444 return tbExample .getObject ();
442445 }
0 commit comments