001/* 002 * Copyright (c) 2022-2025, Mybatis-Flex (fuhai999@gmail.com). 003 * <p> 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * <p> 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * <p> 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package com.mybatisflex.core.query; 017 018import com.mybatisflex.core.constant.SqlConnector; 019import com.mybatisflex.core.util.LambdaGetter; 020import com.mybatisflex.core.util.LambdaUtil; 021 022import java.util.Collection; 023import java.util.Map; 024import java.util.function.BooleanSupplier; 025import java.util.function.Consumer; 026import java.util.function.Predicate; 027 028/** 029 * {@link QueryWrapper} 泛型适配器。 030 * 031 * @param <R> 返回值类型 032 * @author michael 033 * @author suomm 034 */ 035@SuppressWarnings({"unchecked", "rawtypes"}) 036public class QueryWrapperAdapter<R extends QueryWrapperAdapter<R>> extends QueryWrapper { 037 038 @Override 039 public WithBuilder<R> with(String name) { 040 return super.with(name); 041 } 042 043 @Override 044 public WithBuilder<R> with(String name, String... params) { 045 return super.with(name, params); 046 } 047 048 @Override 049 public WithBuilder<R> withRecursive(String name) { 050 return super.withRecursive(name); 051 } 052 053 @Override 054 public WithBuilder<R> withRecursive(String name, String... params) { 055 return super.withRecursive(name, params); 056 } 057 058 @Override 059 public R select() { 060 super.select(); 061 return (R) this; 062 } 063 064 @Override 065 public R select(String... columns) { 066 super.select(columns); 067 return (R) this; 068 } 069 070 @Override 071 public <T> R select(LambdaGetter<T>... lambdaGetters) { 072 super.select(lambdaGetters); 073 return (R) this; 074 } 075 076 @Override 077 public R select(QueryColumn... queryColumns) { 078 super.select(queryColumns); 079 return (R) this; 080 } 081 082 @Override 083 public R select(Iterable<QueryColumn> queryColumns) { 084 super.select(queryColumns); 085 return (R) this; 086 } 087 088 @Override 089 public R select(QueryColumn[]... queryColumns) { 090 super.select(queryColumns); 091 return (R) this; 092 } 093 094 @Override 095 public R select(QueryColumn[] queryColumns, QueryColumn... queryColumns2) { 096 super.select(queryColumns, queryColumns2); 097 return (R) this; 098 } 099 100 public R from(Class<?>... entityClasses) { 101 super.from(entityClasses); 102 return (R) this; 103 } 104 105 @Override 106 public R from(String... tables) { 107 super.from(tables); 108 return (R) this; 109 } 110 111 @Override 112 public R from(QueryTable... tables) { 113 super.from(tables); 114 return (R) this; 115 } 116 117 @Override 118 public R from(QueryWrapper queryWrapper) { 119 super.from(queryWrapper); 120 return (R) this; 121 } 122 123 @Override 124 public R as(String alias) { 125 super.as(alias); 126 return (R) this; 127 } 128 129 @Override 130 public R where(QueryCondition queryCondition) { 131 super.where(queryCondition); 132 return (R) this; 133 } 134 135 @Override 136 public R where(String sql) { 137 super.where(sql); 138 return (R) this; 139 } 140 141 @Override 142 public R where(String sql, Object... params) { 143 super.where(sql, params); 144 return (R) this; 145 } 146 147 @Override 148 public R where(Map<String, Object> whereConditions) { 149 super.where(whereConditions); 150 return (R) this; 151 } 152 153 @Override 154 public R where(Map<String, Object> whereConditions, SqlOperators operators) { 155 super.where(whereConditions, operators); 156 return (R) this; 157 } 158 159 @Override 160 public <T> QueryConditionBuilder<R> where(LambdaGetter<T> fn) { 161 return new QueryConditionBuilder<>((R) this, LambdaUtil.getQueryColumn(fn), SqlConnector.AND); 162 } 163 164 @Override 165 public R where(Consumer<QueryWrapper> consumer) { 166 return and(consumer); 167 } 168 169 @Override 170 public R and(QueryCondition queryCondition) { 171 super.and(queryCondition); 172 return (R) this; 173 } 174 175 @Override 176 public R and(String sql) { 177 super.and(sql); 178 return (R) this; 179 } 180 181 @Override 182 public R and(String sql, Object... params) { 183 super.and(sql, params); 184 return (R) this; 185 } 186 187 @Override 188 public <T> QueryConditionBuilder<R> and(LambdaGetter<T> fn) { 189 return new QueryConditionBuilder<>((R) this, LambdaUtil.getQueryColumn(fn), SqlConnector.AND); 190 } 191 192 @Override 193 public R and(Consumer<QueryWrapper> consumer) { 194 super.and(consumer); 195 return (R) this; 196 } 197 198 @Override 199 public R and(Map<String, Object> whereConditions) { 200 super.and(whereConditions); 201 return (R) this; 202 } 203 204 @Override 205 public R and(Map<String, Object> whereConditions, SqlOperators operators) { 206 super.and(whereConditions, operators); 207 return (R) this; 208 } 209 210 @Override 211 public R and(Map<String, Object> whereConditions, SqlOperators operators, SqlConnector innerConnector) { 212 super.and(whereConditions, operators, innerConnector); 213 return (R) this; 214 } 215 216 @Override 217 public R or(QueryCondition queryCondition) { 218 super.or(queryCondition); 219 return (R) this; 220 } 221 222 @Override 223 public R or(String sql) { 224 super.or(sql); 225 return (R) this; 226 } 227 228 @Override 229 public R or(String sql, Object... params) { 230 super.or(sql, params); 231 return (R) this; 232 } 233 234 @Override 235 public <T> QueryConditionBuilder<R> or(LambdaGetter<T> fn) { 236 return new QueryConditionBuilder<>((R) this, LambdaUtil.getQueryColumn(fn), SqlConnector.OR); 237 } 238 239 @Override 240 public R or(Consumer<QueryWrapper> consumer) { 241 super.or(consumer); 242 return (R) this; 243 } 244 245 @Override 246 public R or(Map<String, Object> whereConditions) { 247 super.or(whereConditions); 248 return (R) this; 249 } 250 251 @Override 252 public R or(Map<String, Object> whereConditions, SqlOperators operators) { 253 super.or(whereConditions, operators); 254 return (R) this; 255 } 256 257 @Override 258 public R or(Map<String, Object> whereConditions, SqlOperators operators, SqlConnector innerConnector) { 259 super.or(whereConditions, operators, innerConnector); 260 return (R) this; 261 } 262 263 @Override 264 public Joiner<R> leftJoin(QueryTable table) { 265 return super.leftJoin(table); 266 } 267 268 @Override 269 public Joiner<R> leftJoin(String table) { 270 return super.leftJoin(table); 271 } 272 273 @Override 274 public Joiner<R> leftJoin(String table, boolean when) { 275 return super.leftJoin(table, when); 276 } 277 278 @Override 279 public Joiner<R> leftJoin(Class entityClass) { 280 return super.leftJoin(entityClass); 281 } 282 283 @Override 284 public Joiner<R> leftJoin(Class entityClass, boolean when) { 285 return super.leftJoin(entityClass, when); 286 } 287 288 @Override 289 public Joiner<R> leftJoin(QueryWrapper table) { 290 return super.leftJoin(table); 291 } 292 293 @Override 294 public Joiner<R> leftJoin(QueryWrapper table, boolean when) { 295 return super.leftJoin(table, when); 296 } 297 298 @Override 299 public Joiner<R> rightJoin(QueryTable table) { 300 return super.rightJoin(table); 301 } 302 303 @Override 304 public Joiner<R> rightJoin(String table) { 305 return super.rightJoin(table); 306 } 307 308 @Override 309 public Joiner<R> rightJoin(String table, boolean when) { 310 return super.rightJoin(table, when); 311 } 312 313 @Override 314 public Joiner<R> rightJoin(Class entityClass) { 315 return super.rightJoin(entityClass); 316 } 317 318 @Override 319 public Joiner<R> rightJoin(Class entityClass, boolean when) { 320 return super.rightJoin(entityClass, when); 321 } 322 323 @Override 324 public Joiner<R> rightJoin(QueryWrapper table) { 325 return super.rightJoin(table); 326 } 327 328 @Override 329 public Joiner<R> rightJoin(QueryWrapper table, boolean when) { 330 return super.rightJoin(table, when); 331 } 332 333 @Override 334 public Joiner<R> innerJoin(QueryTable table) { 335 return super.innerJoin(table); 336 } 337 338 @Override 339 public Joiner<R> innerJoin(String table) { 340 return super.innerJoin(table); 341 } 342 343 @Override 344 public Joiner<R> innerJoin(String table, boolean when) { 345 return super.innerJoin(table, when); 346 } 347 348 @Override 349 public Joiner<R> innerJoin(Class entityClass) { 350 return super.innerJoin(entityClass); 351 } 352 353 @Override 354 public Joiner<R> innerJoin(Class entityClass, boolean when) { 355 return super.innerJoin(entityClass, when); 356 } 357 358 @Override 359 public Joiner<R> innerJoin(QueryWrapper table) { 360 return super.innerJoin(table); 361 } 362 363 @Override 364 public Joiner<R> innerJoin(QueryWrapper table, boolean when) { 365 return super.innerJoin(table, when); 366 } 367 368 @Override 369 public Joiner<R> fullJoin(QueryTable table) { 370 return super.fullJoin(table); 371 } 372 373 @Override 374 public Joiner<R> fullJoin(String table) { 375 return super.fullJoin(table); 376 } 377 378 @Override 379 public Joiner<R> fullJoin(String table, boolean when) { 380 return super.fullJoin(table, when); 381 } 382 383 @Override 384 public Joiner<R> fullJoin(Class entityClass) { 385 return super.fullJoin(entityClass); 386 } 387 388 @Override 389 public Joiner<R> fullJoin(Class entityClass, boolean when) { 390 return super.fullJoin(entityClass, when); 391 } 392 393 @Override 394 public Joiner<R> fullJoin(QueryWrapper table) { 395 return super.fullJoin(table); 396 } 397 398 @Override 399 public Joiner<R> fullJoin(QueryWrapper table, boolean when) { 400 return super.fullJoin(table, when); 401 } 402 403 @Override 404 public Joiner<R> crossJoin(QueryTable table) { 405 return super.crossJoin(table); 406 } 407 408 @Override 409 public Joiner<R> crossJoin(String table) { 410 return super.crossJoin(table); 411 } 412 413 @Override 414 public Joiner<R> crossJoin(String table, boolean when) { 415 return super.crossJoin(table, when); 416 } 417 418 @Override 419 public Joiner<R> crossJoin(Class entityClass) { 420 return super.crossJoin(entityClass); 421 } 422 423 @Override 424 public Joiner<R> crossJoin(Class entityClass, boolean when) { 425 return super.crossJoin(entityClass, when); 426 } 427 428 @Override 429 public Joiner<R> crossJoin(QueryWrapper table) { 430 return super.crossJoin(table); 431 } 432 433 @Override 434 public Joiner<R> crossJoin(QueryWrapper table, boolean when) { 435 return super.crossJoin(table, when); 436 } 437 438 @Override 439 public Joiner<R> join(QueryTable table) { 440 return super.join(table); 441 } 442 443 @Override 444 public Joiner<R> join(String table) { 445 return super.join(table); 446 } 447 448 @Override 449 public Joiner<R> join(String table, boolean when) { 450 return super.join(table, when); 451 } 452 453 @Override 454 public Joiner<R> join(Class entityClass) { 455 return super.join(entityClass); 456 } 457 458 @Override 459 public Joiner<R> join(Class entityClass, boolean when) { 460 return super.join(entityClass, when); 461 } 462 463 @Override 464 public Joiner<R> join(QueryWrapper table) { 465 return super.join(table); 466 } 467 468 @Override 469 public Joiner<R> join(QueryWrapper table, boolean when) { 470 return super.join(table, when); 471 } 472 473 @Override 474 public R union(QueryWrapper unionQuery) { 475 super.union(unionQuery); 476 return (R) this; 477 } 478 479 @Override 480 public R unionAll(QueryWrapper unionQuery) { 481 super.unionAll(unionQuery); 482 return (R) this; 483 } 484 485 @Override 486 public R forUpdate() { 487 super.forUpdate(); 488 return (R) this; 489 } 490 491 @Override 492 public R forUpdateNoWait() { 493 super.forUpdateNoWait(); 494 return (R) this; 495 } 496 497 @Override 498 public R groupBy(String name) { 499 super.groupBy(name); 500 return (R) this; 501 } 502 503 @Override 504 public R groupBy(String... names) { 505 super.groupBy(names); 506 return (R) this; 507 } 508 509 @Override 510 public R groupBy(QueryColumn column) { 511 super.groupBy(column); 512 return (R) this; 513 } 514 515 @Override 516 public R groupBy(QueryColumn... columns) { 517 super.groupBy(columns); 518 return (R) this; 519 } 520 521 @Override 522 public <T> R groupBy(LambdaGetter<T> column) { 523 super.groupBy(column); 524 return (R) this; 525 } 526 527 @Override 528 public <T> R groupBy(LambdaGetter<T>... columns) { 529 super.groupBy(columns); 530 return (R) this; 531 } 532 533 @Override 534 public R having(QueryCondition queryCondition) { 535 super.having(queryCondition); 536 return (R) this; 537 } 538 539 @Override 540 public R orderBy(QueryColumn column, Boolean asc) { 541 super.orderBy(column, asc); 542 return (R) this; 543 } 544 545 @Override 546 public R orderBy(QueryOrderBy... orderBys) { 547 super.orderBy(orderBys); 548 return (R) this; 549 } 550 551 @Override 552 public <T> R orderBy(LambdaGetter<T> column, Boolean asc) { 553 super.orderBy(column, asc); 554 return (R) this; 555 } 556 557 @Override 558 public <T> QueryOrderByBuilder<R> orderBy(LambdaGetter<T> getter) { 559 return (QueryOrderByBuilder<R>) super.orderBy(getter); 560 } 561 562 @Override 563 public R orderBy(String column, Boolean asc) { 564 super.orderBy(column, asc); 565 return (R) this; 566 } 567 568 @Override 569 public R orderBy(String... orderBys) { 570 super.orderBy(orderBys); 571 return (R) this; 572 } 573 574 @Override 575 public R limit(Number rows) { 576 super.limit(rows); 577 return (R) this; 578 } 579 580 @Override 581 public R offset(Number offset) { 582 super.offset(offset); 583 return (R) this; 584 } 585 586 @Override 587 public R limit(Number offset, Number rows) { 588 super.limit(offset, rows); 589 return (R) this; 590 } 591 592 @Override 593 public R datasource(String datasource) { 594 super.datasource(datasource); 595 return (R) this; 596 } 597 598 @Override 599 public R hint(String hint) { 600 super.hint(hint); 601 return (R) this; 602 } 603 604 605 /////////MyBatis-Plus 兼容方法/////////////// 606 607 /** 608 * 等于 {@code =} 609 * 610 * @param column 列名 611 * @param value 条件的值 612 */ 613 @Override 614 public R eq(String column, Object value) { 615 and(QueryMethods.column(column).eq(value)); 616 return (R) this; 617 } 618 619 /** 620 * 等于 {@code =} 621 * 622 * @param column 列名, lambda 展示 623 * @param value 值 624 */ 625 @Override 626 public <T> R eq(LambdaGetter<T> column, Object value) { 627 and(QueryMethods.column(column).eq(value)); 628 return (R) this; 629 } 630 631 /** 632 * 等于 {@code =} 633 * 634 * @param column 列名 635 * @param value 条件的值 636 * @param isEffective 是否有效 637 */ 638 @Override 639 public R eq(String column, Object value, boolean isEffective) { 640 and(QueryMethods.column(column).eq(value).when(isEffective)); 641 return (R) this; 642 } 643 644 /** 645 * 等于 {@code =} 646 * 647 * @param column 列名, lambda 展示 648 * @param value 值 649 * @param isEffective 是否有效 650 */ 651 @Override 652 public <T> R eq(LambdaGetter<T> column, Object value, boolean isEffective) { 653 and(QueryMethods.column(column).eq(value).when(isEffective)); 654 return (R) this; 655 } 656 657 /** 658 * 等于 {@code =} 659 * 660 * @param column 列名 661 * @param value 条件的值 662 * @param isEffective 是否有效 663 */ 664 @Override 665 public <V> R eq(String column, V value, Predicate<V> isEffective) { 666 and(QueryMethods.column(column).eq(value, isEffective)); 667 return (R) this; 668 } 669 670 /** 671 * 等于 {@code =} 672 * 673 * @param column 列名, lambda 展示 674 * @param value 值 675 * @param isEffective 是否有效 676 */ 677 @Override 678 public <T, V> R eq(LambdaGetter<T> column, V value, Predicate<V> isEffective) { 679 and(QueryMethods.column(column).eq(value, isEffective)); 680 return (R) this; 681 } 682 683 684 /** 685 * 不等于 {@code !=} 686 * 687 * @param column 列名 688 * @param value 条件的值 689 */ 690 @Override 691 public R ne(String column, Object value) { 692 and(QueryMethods.column(column).ne(value)); 693 return (R) this; 694 } 695 696 /** 697 * 不等于 {@code !=} 698 * 699 * @param column 列名, lambda 展示 700 * @param value 值 701 */ 702 @Override 703 public <T> R ne(LambdaGetter<T> column, Object value) { 704 and(QueryMethods.column(column).ne(value)); 705 return (R) this; 706 } 707 708 /** 709 * 不等于 {@code !=} 710 * 711 * @param column 列名 712 * @param value 条件的值 713 * @param isEffective 是否有效 714 */ 715 @Override 716 public R ne(String column, Object value, boolean isEffective) { 717 and(QueryMethods.column(column).ne(value).when(isEffective)); 718 return (R) this; 719 } 720 721 /** 722 * 不等于 {@code !=} 723 * 724 * @param column 列名, lambda 展示 725 * @param value 值 726 * @param isEffective 是否有效 727 */ 728 @Override 729 public <T> R ne(LambdaGetter<T> column, Object value, boolean isEffective) { 730 and(QueryMethods.column(column).ne(value).when(isEffective)); 731 return (R) this; 732 } 733 734 /** 735 * 不等于 {@code !=} 736 * 737 * @param column 列名 738 * @param value 条件的值 739 * @param isEffective 是否有效 740 */ 741 @Override 742 public <V> R ne(String column, V value, Predicate<V> isEffective) { 743 and(QueryMethods.column(column).ne(value, isEffective)); 744 return (R) this; 745 } 746 747 /** 748 * 不等于 {@code !=} 749 * 750 * @param column 列名, lambda 展示 751 * @param value 值 752 * @param isEffective 是否有效 753 */ 754 @Override 755 public <T, V> R ne(LambdaGetter<T> column, V value, Predicate<V> isEffective) { 756 and(QueryMethods.column(column).ne(value, isEffective)); 757 return (R) this; 758 } 759 760 761 /** 762 * 大于 {@code >} 763 * 764 * @param column 列名 765 * @param value 条件的值 766 */ 767 @Override 768 public R gt(String column, Object value) { 769 and(QueryMethods.column(column).gt(value)); 770 return (R) this; 771 } 772 773 /** 774 * 大于 {@code >} 775 * 776 * @param column 列名, lambda 展示 777 * @param value 值 778 */ 779 @Override 780 public <T> R gt(LambdaGetter<T> column, Object value) { 781 and(QueryMethods.column(column).gt(value)); 782 return (R) this; 783 } 784 785 /** 786 * 大于 {@code >} 787 * 788 * @param column 列名 789 * @param value 条件的值 790 * @param isEffective 是否有效 791 */ 792 @Override 793 public R gt(String column, Object value, boolean isEffective) { 794 and(QueryMethods.column(column).gt(value).when(isEffective)); 795 return (R) this; 796 } 797 798 /** 799 * 大于 {@code >} 800 * 801 * @param column 列名, lambda 展示 802 * @param value 值 803 * @param isEffective 是否有效 804 */ 805 @Override 806 public <T> R gt(LambdaGetter<T> column, Object value, boolean isEffective) { 807 and(QueryMethods.column(column).gt(value).when(isEffective)); 808 return (R) this; 809 } 810 811 /** 812 * 大于 {@code >} 813 * 814 * @param column 列名 815 * @param value 条件的值 816 * @param isEffective 是否有效 817 */ 818 @Override 819 public <V> R gt(String column, V value, Predicate<V> isEffective) { 820 and(QueryMethods.column(column).gt(value, isEffective)); 821 return (R) this; 822 } 823 824 /** 825 * 大于 {@code >} 826 * 827 * @param column 列名, lambda 展示 828 * @param value 值 829 * @param isEffective 是否有效 830 */ 831 @Override 832 public <T, V> R gt(LambdaGetter<T> column, V value, Predicate<V> isEffective) { 833 and(QueryMethods.column(column).gt(value, isEffective)); 834 return (R) this; 835 } 836 837 838 /** 839 * 大于等于 {@code >=} 840 * 841 * @param column 列名 842 * @param value 条件的值 843 */ 844 @Override 845 public R ge(String column, Object value) { 846 and(QueryMethods.column(column).ge(value)); 847 return (R) this; 848 } 849 850 /** 851 * 大于等于 {@code >=} 852 * 853 * @param column 列名, lambda 展示 854 * @param value 值 855 */ 856 @Override 857 public <T> R ge(LambdaGetter<T> column, Object value) { 858 and(QueryMethods.column(column).ge(value)); 859 return (R) this; 860 } 861 862 /** 863 * 大于等于 {@code >=} 864 * 865 * @param column 列名 866 * @param value 条件的值 867 * @param isEffective 是否有效 868 */ 869 @Override 870 public R ge(String column, Object value, boolean isEffective) { 871 and(QueryMethods.column(column).ge(value).when(isEffective)); 872 return (R) this; 873 } 874 875 /** 876 * 大于等于 {@code >=} 877 * 878 * @param column 列名, lambda 展示 879 * @param value 值 880 * @param isEffective 是否有效 881 */ 882 @Override 883 public <T> R ge(LambdaGetter<T> column, Object value, boolean isEffective) { 884 and(QueryMethods.column(column).ge(value).when(isEffective)); 885 return (R) this; 886 } 887 888 /** 889 * 大于等于 {@code >=} 890 * 891 * @param column 列名 892 * @param value 条件的值 893 * @param isEffective 是否有效 894 */ 895 @Override 896 public <V> R ge(String column, V value, Predicate<V> isEffective) { 897 and(QueryMethods.column(column).ge(value, isEffective)); 898 return (R) this; 899 } 900 901 /** 902 * 大于等于 {@code >=} 903 * 904 * @param column 列名, lambda 展示 905 * @param value 值 906 * @param isEffective 是否有效 907 */ 908 @Override 909 public <T, V> R ge(LambdaGetter<T> column, V value, Predicate<V> isEffective) { 910 and(QueryMethods.column(column).ge(value, isEffective)); 911 return (R) this; 912 } 913 914 915 /** 916 * 小于 {@code <} 917 * 918 * @param column 列名 919 * @param value 条件的值 920 */ 921 @Override 922 public R lt(String column, Object value) { 923 and(QueryMethods.column(column).lt(value)); 924 return (R) this; 925 } 926 927 /** 928 * 小于 {@code <} 929 * 930 * @param column 列名, lambda 展示 931 * @param value 值 932 */ 933 @Override 934 public <T> R lt(LambdaGetter<T> column, Object value) { 935 and(QueryMethods.column(column).lt(value)); 936 return (R) this; 937 } 938 939 /** 940 * 小于 {@code <} 941 * 942 * @param column 列名 943 * @param value 条件的值 944 * @param isEffective 是否有效 945 */ 946 @Override 947 public R lt(String column, Object value, boolean isEffective) { 948 and(QueryMethods.column(column).lt(value).when(isEffective)); 949 return (R) this; 950 } 951 952 /** 953 * 小于 {@code <} 954 * 955 * @param column 列名, lambda 展示 956 * @param value 值 957 * @param isEffective 是否有效 958 */ 959 @Override 960 public <T> R lt(LambdaGetter<T> column, Object value, boolean isEffective) { 961 and(QueryMethods.column(column).lt(value).when(isEffective)); 962 return (R) this; 963 } 964 965 /** 966 * 小于 {@code <} 967 * 968 * @param column 列名 969 * @param value 条件的值 970 * @param isEffective 是否有效 971 */ 972 @Override 973 public <V> R lt(String column, V value, Predicate<V> isEffective) { 974 and(QueryMethods.column(column).lt(value, isEffective)); 975 return (R) this; 976 } 977 978 /** 979 * 小于 {@code <} 980 * 981 * @param column 列名, lambda 展示 982 * @param value 值 983 * @param isEffective 是否有效 984 */ 985 @Override 986 public <T, V> R lt(LambdaGetter<T> column, V value, Predicate<V> isEffective) { 987 and(QueryMethods.column(column).lt(value, isEffective)); 988 return (R) this; 989 } 990 991 992 /** 993 * 小于等于 {@code <=} 994 * 995 * @param column 列名 996 * @param value 条件的值 997 */ 998 @Override 999 public R le(String column, Object value) { 1000 and(QueryMethods.column(column).le(value)); 1001 return (R) this; 1002 } 1003 1004 /** 1005 * 小于等于 {@code <=} 1006 * 1007 * @param column 列名, lambda 展示 1008 * @param value 值 1009 */ 1010 @Override 1011 public <T> R le(LambdaGetter<T> column, Object value) { 1012 and(QueryMethods.column(column).le(value)); 1013 return (R) this; 1014 } 1015 1016 /** 1017 * 小于等于 {@code <=} 1018 * 1019 * @param column 列名 1020 * @param value 条件的值 1021 * @param isEffective 是否有效 1022 */ 1023 @Override 1024 public R le(String column, Object value, boolean isEffective) { 1025 and(QueryMethods.column(column).le(value).when(isEffective)); 1026 return (R) this; 1027 } 1028 1029 /** 1030 * 小于等于 {@code <=} 1031 * 1032 * @param column 列名, lambda 展示 1033 * @param value 值 1034 * @param isEffective 是否有效 1035 */ 1036 @Override 1037 public <T> R le(LambdaGetter<T> column, Object value, boolean isEffective) { 1038 and(QueryMethods.column(column).le(value).when(isEffective)); 1039 return (R) this; 1040 } 1041 1042 /** 1043 * 小于等于 {@code <=} 1044 * 1045 * @param column 列名 1046 * @param value 条件的值 1047 * @param isEffective 是否有效 1048 */ 1049 @Override 1050 public <V> R le(String column, V value, Predicate<V> isEffective) { 1051 and(QueryMethods.column(column).le(value, isEffective)); 1052 return (R) this; 1053 } 1054 1055 /** 1056 * 小于等于 {@code <=} 1057 * 1058 * @param column 列名, lambda 展示 1059 * @param value 值 1060 * @param isEffective 是否有效 1061 */ 1062 @Override 1063 public <T, V> R le(LambdaGetter<T> column, V value, Predicate<V> isEffective) { 1064 and(QueryMethods.column(column).le(value, isEffective)); 1065 return (R) this; 1066 } 1067 1068 1069 /** 1070 * {@code IN(value)} 1071 * 1072 * @param column 列名 1073 * @param values 条件的值 1074 */ 1075 @Override 1076 public R in(String column, Object... values) { 1077 and(QueryMethods.column(column).in(values)); 1078 return (R) this; 1079 } 1080 1081 /** 1082 * {@code IN(value)} 1083 * 1084 * @param column 列名, lambda 展示 1085 * @param values 值 1086 */ 1087 @Override 1088 public <T> R in(LambdaGetter<T> column, Object... values) { 1089 and(QueryMethods.column(column).in(values)); 1090 return (R) this; 1091 } 1092 1093 1094 /** 1095 * {@code IN(value)} 1096 * 1097 * @param column 列名 1098 * @param queryWrapper 条件的值 1099 */ 1100 @Override 1101 public R in(String column, QueryWrapper queryWrapper) { 1102 and(QueryMethods.column(column).in(queryWrapper)); 1103 return (R) this; 1104 } 1105 1106 1107 /** 1108 * {@code IN(value)} 1109 * 1110 * @param column 列名, lambda 展示 1111 * @param queryWrapper 值 1112 */ 1113 @Override 1114 public <T> R in(LambdaGetter<T> column, QueryWrapper queryWrapper) { 1115 and(QueryMethods.column(column).in(queryWrapper)); 1116 return (R) this; 1117 } 1118 1119 1120 /** 1121 * {@code IN(value)} 1122 * 1123 * @param column 列名 1124 * @param values 条件的值 1125 */ 1126 @Override 1127 public R in(String column, Collection<?> values) { 1128 and(QueryMethods.column(column).in(values)); 1129 return (R) this; 1130 } 1131 1132 /** 1133 * {@code IN(value)} 1134 * 1135 * @param column 列名, lambda 展示 1136 * @param values 值 1137 */ 1138 @Override 1139 public <T> R in(LambdaGetter<T> column, Collection<?> values) { 1140 and(QueryMethods.column(column).in(values)); 1141 return (R) this; 1142 } 1143 1144 1145 /** 1146 * {@code IN(value)} 1147 * 1148 * @param column 列名 1149 * @param values 条件的值 1150 */ 1151 @Override 1152 public R in(String column, Object[] values, boolean isEffective) { 1153 and(QueryMethods.column(column).in(values, isEffective)); 1154 return (R) this; 1155 } 1156 1157 /** 1158 * {@code IN(value)} 1159 * 1160 * @param column 列名, lambda 展示 1161 * @param values 值 1162 */ 1163 @Override 1164 public <T> R in(LambdaGetter<T> column, Object[] values, boolean isEffective) { 1165 and(QueryMethods.column(column).in(values, isEffective)); 1166 return (R) this; 1167 } 1168 1169 1170 /** 1171 * {@code IN(value)} 1172 * 1173 * @param column 列名 1174 * @param values 条件的值 1175 */ 1176 @Override 1177 public R in(String column, Collection<?> values, boolean isEffective) { 1178 and(QueryMethods.column(column).in(values, isEffective)); 1179 return (R) this; 1180 } 1181 1182 /** 1183 * {@code IN(value)} 1184 * 1185 * @param column 列名, lambda 展示 1186 * @param values 值 1187 */ 1188 @Override 1189 public <T> R in(LambdaGetter<T> column, Collection<?> values, boolean isEffective) { 1190 and(QueryMethods.column(column).in(values, isEffective)); 1191 return (R) this; 1192 } 1193 1194 1195 /** 1196 * {@code IN(value)} 1197 * 1198 * @param column 列名 1199 * @param queryWrapper 条件的值 1200 */ 1201 @Override 1202 public R in(String column, QueryWrapper queryWrapper, boolean isEffective) { 1203 and(QueryMethods.column(column).in(queryWrapper, isEffective)); 1204 return (R) this; 1205 } 1206 1207 1208 /** 1209 * {@code IN(value)} 1210 * 1211 * @param column 列名, lambda 展示 1212 * @param queryWrapper 值 1213 */ 1214 @Override 1215 public <T> R in(LambdaGetter<T> column, QueryWrapper queryWrapper, boolean isEffective) { 1216 and(QueryMethods.column(column).in(queryWrapper, isEffective)); 1217 return (R) this; 1218 } 1219 1220 1221 /** 1222 * {@code IN(value)} 1223 * 1224 * @param column 列名 1225 * @param queryWrapper 条件的值 1226 */ 1227 @Override 1228 public R in(String column, QueryWrapper queryWrapper, BooleanSupplier isEffective) { 1229 and(QueryMethods.column(column).in(queryWrapper, isEffective)); 1230 return (R) this; 1231 } 1232 1233 1234 /** 1235 * {@code IN(value)} 1236 * 1237 * @param column 列名, lambda 展示 1238 * @param queryWrapper 值 1239 */ 1240 @Override 1241 public <T> R in(LambdaGetter<T> column, QueryWrapper queryWrapper, BooleanSupplier isEffective) { 1242 and(QueryMethods.column(column).in(queryWrapper, isEffective)); 1243 return (R) this; 1244 } 1245 1246 1247 /** 1248 * {@code NOT IN(value)} 1249 * 1250 * @param column 列名 1251 * @param values 条件的值 1252 */ 1253 @Override 1254 public R notIn(String column, Object... values) { 1255 and(QueryMethods.column(column).notIn(values)); 1256 return (R) this; 1257 } 1258 1259 /** 1260 * {@code NOT IN(value)} 1261 * 1262 * @param column 列名, lambda 展示 1263 * @param values 值 1264 */ 1265 @Override 1266 public <T> R notIn(LambdaGetter<T> column, Object... values) { 1267 and(QueryMethods.column(column).notIn(values)); 1268 return (R) this; 1269 } 1270 1271 1272 /** 1273 * {@code NOT IN(value)} 1274 * 1275 * @param column 列名 1276 * @param queryWrapper 条件的值 1277 */ 1278 @Override 1279 public R notIn(String column, QueryWrapper queryWrapper) { 1280 and(QueryMethods.column(column).notIn(queryWrapper)); 1281 return (R) this; 1282 } 1283 1284 1285 /** 1286 * {@code NOT IN(value)} 1287 * 1288 * @param column 列名, lambda 展示 1289 * @param queryWrapper 值 1290 */ 1291 @Override 1292 public <T> R notIn(LambdaGetter<T> column, QueryWrapper queryWrapper) { 1293 and(QueryMethods.column(column).notIn(queryWrapper)); 1294 return (R) this; 1295 } 1296 1297 1298 /** 1299 * {@code NOT IN(value)} 1300 * 1301 * @param column 列名 1302 * @param values 条件的值 1303 */ 1304 @Override 1305 public R notIn(String column, Collection<?> values) { 1306 and(QueryMethods.column(column).notIn(values)); 1307 return (R) this; 1308 } 1309 1310 /** 1311 * {@code NOT IN(value)} 1312 * 1313 * @param column 列名, lambda 展示 1314 * @param values 值 1315 */ 1316 @Override 1317 public <T> R notIn(LambdaGetter<T> column, Collection<?> values) { 1318 and(QueryMethods.column(column).notIn(values)); 1319 return (R) this; 1320 } 1321 1322 1323 /** 1324 * {@code NOT IN(value)} 1325 * 1326 * @param column 列名 1327 * @param values 条件的值 1328 */ 1329 @Override 1330 public R notIn(String column, Object[] values, boolean isEffective) { 1331 and(QueryMethods.column(column).notIn(values, isEffective)); 1332 return (R) this; 1333 } 1334 1335 /** 1336 * {@code NOT IN(value)} 1337 * 1338 * @param column 列名, lambda 展示 1339 * @param values 值 1340 */ 1341 @Override 1342 public <T> R notIn(LambdaGetter<T> column, Object[] values, boolean isEffective) { 1343 and(QueryMethods.column(column).notIn(values, isEffective)); 1344 return (R) this; 1345 } 1346 1347 1348 /** 1349 * {@code NOT IN(value)} 1350 * 1351 * @param column 列名 1352 * @param values 条件的值 1353 */ 1354 @Override 1355 public R notIn(String column, Collection<?> values, boolean isEffective) { 1356 and(QueryMethods.column(column).notIn(values, isEffective)); 1357 return (R) this; 1358 } 1359 1360 /** 1361 * {@code NOT IN(value)} 1362 * 1363 * @param column 列名, lambda 展示 1364 * @param values 值 1365 */ 1366 @Override 1367 public <T> R notIn(LambdaGetter<T> column, Collection<?> values, boolean isEffective) { 1368 and(QueryMethods.column(column).notIn(values, isEffective)); 1369 return (R) this; 1370 } 1371 1372 1373 /** 1374 * {@code NOT IN(value)} 1375 * 1376 * @param column 列名 1377 * @param queryWrapper 条件的值 1378 */ 1379 @Override 1380 public R notIn(String column, QueryWrapper queryWrapper, boolean isEffective) { 1381 and(QueryMethods.column(column).notIn(queryWrapper, isEffective)); 1382 return (R) this; 1383 } 1384 1385 1386 /** 1387 * {@code NOT IN(value)} 1388 * 1389 * @param column 列名, lambda 展示 1390 * @param queryWrapper 值 1391 */ 1392 @Override 1393 public <T> R notIn(LambdaGetter<T> column, QueryWrapper queryWrapper, boolean isEffective) { 1394 and(QueryMethods.column(column).notIn(queryWrapper, isEffective)); 1395 return (R) this; 1396 } 1397 1398 1399 /** 1400 * {@code NOT IN(value)} 1401 * 1402 * @param column 列名 1403 * @param queryWrapper 条件的值 1404 */ 1405 @Override 1406 public R notIn(String column, QueryWrapper queryWrapper, BooleanSupplier isEffective) { 1407 and(QueryMethods.column(column).notIn(queryWrapper, isEffective)); 1408 return (R) this; 1409 } 1410 1411 1412 /** 1413 * {@code NOT IN(value)} 1414 * 1415 * @param column 列名, lambda 展示 1416 * @param queryWrapper 值 1417 */ 1418 @Override 1419 public <T> R notIn(LambdaGetter<T> column, QueryWrapper queryWrapper, BooleanSupplier isEffective) { 1420 and(QueryMethods.column(column).notIn(queryWrapper, isEffective)); 1421 return (R) this; 1422 } 1423 1424 1425 /** 1426 * {@code BETWEEN start AND end} 1427 * 1428 * @param column 列名 1429 * @param start 开始的值 1430 * @param end 结束的值 1431 */ 1432 @Override 1433 public R between(String column, Object start, Object end) { 1434 and(QueryMethods.column(column).between(start, end)); 1435 return (R) this; 1436 } 1437 1438 /** 1439 * {@code BETWEEN start AND end} 1440 * 1441 * @param column 列名 1442 * @param start 开始的值 1443 * @param end 结束的值 1444 */ 1445 @Override 1446 public <T> R between(LambdaGetter<T> column, Object start, Object end) { 1447 and(QueryMethods.column(column).between(start, end)); 1448 return (R) this; 1449 } 1450 1451 /** 1452 * {@code BETWEEN start AND end} 1453 * 1454 * @param column 列名 1455 * @param start 开始的值 1456 * @param end 结束的值 1457 */ 1458 @Override 1459 public R between(String column, Object start, Object end, boolean isEffective) { 1460 and(QueryMethods.column(column).between(start, end, isEffective)); 1461 return (R) this; 1462 } 1463 1464 /** 1465 * {@code BETWEEN start AND end} 1466 * 1467 * @param column 列名 1468 * @param start 开始的值 1469 * @param end 结束的值 1470 */ 1471 @Override 1472 public <T> R between(LambdaGetter<T> column, Object start, Object end, boolean isEffective) { 1473 and(QueryMethods.column(column).between(start, end, isEffective)); 1474 return (R) this; 1475 } 1476 1477 1478 /** 1479 * {@code BETWEEN start AND end} 1480 * 1481 * @param column 列名 1482 * @param start 开始的值 1483 * @param end 结束的值 1484 */ 1485 @Override 1486 public R between(String column, Object start, Object end, BooleanSupplier isEffective) { 1487 and(QueryMethods.column(column).between(start, end, isEffective)); 1488 return (R) this; 1489 } 1490 1491 /** 1492 * {@code BETWEEN start AND end} 1493 * 1494 * @param column 列名 1495 * @param start 开始的值 1496 * @param end 结束的值 1497 */ 1498 @Override 1499 public <T> R between(LambdaGetter<T> column, Object start, Object end, BooleanSupplier isEffective) { 1500 and(QueryMethods.column(column).between(start, end, isEffective)); 1501 return (R) this; 1502 } 1503 1504 1505 /** 1506 * {@code NOT BETWEEN start AND end} 1507 * 1508 * @param column 列名 1509 * @param start 开始的值 1510 * @param end 结束的值 1511 */ 1512 @Override 1513 public R notBetween(String column, Object start, Object end) { 1514 and(QueryMethods.column(column).notBetween(start, end)); 1515 return (R) this; 1516 } 1517 1518 /** 1519 * {@code NOT BETWEEN start AND end} 1520 * 1521 * @param column 列名 1522 * @param start 开始的值 1523 * @param end 结束的值 1524 */ 1525 @Override 1526 public <T> R notBetween(LambdaGetter<T> column, Object start, Object end) { 1527 and(QueryMethods.column(column).notBetween(start, end)); 1528 return (R) this; 1529 } 1530 1531 /** 1532 * {@code NOT BETWEEN start AND end} 1533 * 1534 * @param column 列名 1535 * @param start 开始的值 1536 * @param end 结束的值 1537 */ 1538 @Override 1539 public R notBetween(String column, Object start, Object end, boolean isEffective) { 1540 and(QueryMethods.column(column).notBetween(start, end, isEffective)); 1541 return (R) this; 1542 } 1543 1544 /** 1545 * {@code NOT BETWEEN start AND end} 1546 * 1547 * @param column 列名 1548 * @param start 开始的值 1549 * @param end 结束的值 1550 */ 1551 @Override 1552 public <T> R notBetween(LambdaGetter<T> column, Object start, Object end, boolean isEffective) { 1553 and(QueryMethods.column(column).notBetween(start, end, isEffective)); 1554 return (R) this; 1555 } 1556 1557 1558 /** 1559 * {@code NOT BETWEEN start AND end} 1560 * 1561 * @param column 列名 1562 * @param start 开始的值 1563 * @param end 结束的值 1564 */ 1565 @Override 1566 public R notBetween(String column, Object start, Object end, BooleanSupplier isEffective) { 1567 and(QueryMethods.column(column).notBetween(start, end, isEffective)); 1568 return (R) this; 1569 } 1570 1571 /** 1572 * {@code NOT BETWEEN start AND end} 1573 * 1574 * @param column 列名 1575 * @param start 开始的值 1576 * @param end 结束的值 1577 */ 1578 @Override 1579 public <T> R notBetween(LambdaGetter<T> column, Object start, Object end, BooleanSupplier isEffective) { 1580 and(QueryMethods.column(column).notBetween(start, end, isEffective)); 1581 return (R) this; 1582 } 1583 1584 1585 /** 1586 * {@code LIKE %value%} 1587 * 1588 * @param column 列名 1589 * @param value 条件的值 1590 */ 1591 @Override 1592 public R like(String column, Object value) { 1593 and(QueryMethods.column(column).like(value)); 1594 return (R) this; 1595 } 1596 1597 /** 1598 * {@code LIKE %value%} 1599 * 1600 * @param column 列名, lambda 展示 1601 * @param value 值 1602 */ 1603 @Override 1604 public <T> R like(LambdaGetter<T> column, Object value) { 1605 and(QueryMethods.column(column).like(value)); 1606 return (R) this; 1607 } 1608 1609 /** 1610 * {@code LIKE %value%} 1611 * 1612 * @param column 列名 1613 * @param value 条件的值 1614 * @param isEffective 是否有效 1615 */ 1616 @Override 1617 public R like(String column, Object value, boolean isEffective) { 1618 and(QueryMethods.column(column).like(value).when(isEffective)); 1619 return (R) this; 1620 } 1621 1622 /** 1623 * {@code LIKE %value%} 1624 * 1625 * @param column 列名, lambda 展示 1626 * @param value 值 1627 * @param isEffective 是否有效 1628 */ 1629 @Override 1630 public <T> R like(LambdaGetter<T> column, Object value, boolean isEffective) { 1631 and(QueryMethods.column(column).like(value).when(isEffective)); 1632 return (R) this; 1633 } 1634 1635 /** 1636 * {@code LIKE %value%} 1637 * 1638 * @param column 列名 1639 * @param value 条件的值 1640 * @param isEffective 是否有效 1641 */ 1642 @Override 1643 public <V> R like(String column, V value, Predicate<V> isEffective) { 1644 and(QueryMethods.column(column).like(value, isEffective)); 1645 return (R) this; 1646 } 1647 1648 /** 1649 * {@code LIKE %value%} 1650 * 1651 * @param column 列名, lambda 展示 1652 * @param value 值 1653 * @param isEffective 是否有效 1654 */ 1655 @Override 1656 public <T, V> R like(LambdaGetter<T> column, V value, Predicate<V> isEffective) { 1657 and(QueryMethods.column(column).like(value, isEffective)); 1658 return (R) this; 1659 } 1660 1661 1662 /** 1663 * {@code LIKE value%} 1664 * 1665 * @param column 列名 1666 * @param value 条件的值 1667 */ 1668 @Override 1669 public R likeLeft(String column, Object value) { 1670 and(QueryMethods.column(column).likeLeft(value)); 1671 return (R) this; 1672 } 1673 1674 /** 1675 * {@code LIKE value%} 1676 * 1677 * @param column 列名, lambda 展示 1678 * @param value 值 1679 */ 1680 @Override 1681 public <T> R likeLeft(LambdaGetter<T> column, Object value) { 1682 and(QueryMethods.column(column).likeLeft(value)); 1683 return (R) this; 1684 } 1685 1686 /** 1687 * {@code LIKE value%} 1688 * 1689 * @param column 列名 1690 * @param value 条件的值 1691 * @param isEffective 是否有效 1692 */ 1693 @Override 1694 public R likeLeft(String column, Object value, boolean isEffective) { 1695 and(QueryMethods.column(column).likeLeft(value).when(isEffective)); 1696 return (R) this; 1697 } 1698 1699 /** 1700 * {@code LIKE value%} 1701 * 1702 * @param column 列名, lambda 展示 1703 * @param value 值 1704 * @param isEffective 是否有效 1705 */ 1706 @Override 1707 public <T> R likeLeft(LambdaGetter<T> column, Object value, boolean isEffective) { 1708 and(QueryMethods.column(column).likeLeft(value).when(isEffective)); 1709 return (R) this; 1710 } 1711 1712 /** 1713 * {@code LIKE value%} 1714 * 1715 * @param column 列名 1716 * @param value 条件的值 1717 * @param isEffective 是否有效 1718 */ 1719 @Override 1720 public <V> R likeLeft(String column, V value, Predicate<V> isEffective) { 1721 and(QueryMethods.column(column).likeLeft(value, isEffective)); 1722 return (R) this; 1723 } 1724 1725 /** 1726 * {@code LIKE value%} 1727 * 1728 * @param column 列名, lambda 展示 1729 * @param value 值 1730 * @param isEffective 是否有效 1731 */ 1732 @Override 1733 public <T, V> R likeLeft(LambdaGetter<T> column, V value, Predicate<V> isEffective) { 1734 and(QueryMethods.column(column).likeLeft(value, isEffective)); 1735 return (R) this; 1736 } 1737 1738 1739 /** 1740 * {@code LIKE %value} 1741 * 1742 * @param column 列名 1743 * @param value 条件的值 1744 */ 1745 @Override 1746 public R likeRight(String column, Object value) { 1747 and(QueryMethods.column(column).likeRight(value)); 1748 return (R) this; 1749 } 1750 1751 /** 1752 * {@code LIKE %value} 1753 * 1754 * @param column 列名, lambda 展示 1755 * @param value 值 1756 */ 1757 @Override 1758 public <T> R likeRight(LambdaGetter<T> column, Object value) { 1759 and(QueryMethods.column(column).likeRight(value)); 1760 return (R) this; 1761 } 1762 1763 /** 1764 * {@code LIKE %value} 1765 * 1766 * @param column 列名 1767 * @param value 条件的值 1768 * @param isEffective 是否有效 1769 */ 1770 @Override 1771 public R likeRight(String column, Object value, boolean isEffective) { 1772 and(QueryMethods.column(column).likeRight(value).when(isEffective)); 1773 return (R) this; 1774 } 1775 1776 /** 1777 * {@code LIKE %value} 1778 * 1779 * @param column 列名, lambda 展示 1780 * @param value 值 1781 * @param isEffective 是否有效 1782 */ 1783 @Override 1784 public <T> R likeRight(LambdaGetter<T> column, Object value, boolean isEffective) { 1785 and(QueryMethods.column(column).likeRight(value).when(isEffective)); 1786 return (R) this; 1787 } 1788 1789 /** 1790 * {@code LIKE %value} 1791 * 1792 * @param column 列名 1793 * @param value 条件的值 1794 * @param isEffective 是否有效 1795 */ 1796 @Override 1797 public <V> R likeRight(String column, V value, Predicate<V> isEffective) { 1798 and(QueryMethods.column(column).likeRight(value, isEffective)); 1799 return (R) this; 1800 } 1801 1802 /** 1803 * {@code LIKE %value} 1804 * 1805 * @param column 列名, lambda 展示 1806 * @param value 值 1807 * @param isEffective 是否有效 1808 */ 1809 @Override 1810 public <T, V> R likeRight(LambdaGetter<T> column, V value, Predicate<V> isEffective) { 1811 and(QueryMethods.column(column).likeRight(value, isEffective)); 1812 return (R) this; 1813 } 1814 1815 1816 /** 1817 * {@code NOT LIKE %value%} 1818 * 1819 * @param column 列名 1820 * @param value 条件的值 1821 */ 1822 @Override 1823 public R notLike(String column, Object value) { 1824 and(QueryMethods.column(column).notLike(value)); 1825 return (R) this; 1826 } 1827 1828 /** 1829 * {@code NOT LIKE %value%} 1830 * 1831 * @param column 列名, lambda 展示 1832 * @param value 值 1833 */ 1834 @Override 1835 public <T> R notLike(LambdaGetter<T> column, Object value) { 1836 and(QueryMethods.column(column).notLike(value)); 1837 return (R) this; 1838 } 1839 1840 /** 1841 * {@code NOT LIKE %value%} 1842 * 1843 * @param column 列名 1844 * @param value 条件的值 1845 * @param isEffective 是否有效 1846 */ 1847 @Override 1848 public R notLike(String column, Object value, boolean isEffective) { 1849 and(QueryMethods.column(column).notLike(value).when(isEffective)); 1850 return (R) this; 1851 } 1852 1853 /** 1854 * {@code NOT LIKE %value%} 1855 * 1856 * @param column 列名, lambda 展示 1857 * @param value 值 1858 * @param isEffective 是否有效 1859 */ 1860 @Override 1861 public <T> R notLike(LambdaGetter<T> column, Object value, boolean isEffective) { 1862 and(QueryMethods.column(column).notLike(value).when(isEffective)); 1863 return (R) this; 1864 } 1865 1866 /** 1867 * {@code NOT LIKE %value%} 1868 * 1869 * @param column 列名 1870 * @param value 条件的值 1871 * @param isEffective 是否有效 1872 */ 1873 @Override 1874 public <V> R notLike(String column, V value, Predicate<V> isEffective) { 1875 and(QueryMethods.column(column).notLike(value, isEffective)); 1876 return (R) this; 1877 } 1878 1879 /** 1880 * {@code NOT LIKE %value%} 1881 * 1882 * @param column 列名, lambda 展示 1883 * @param value 值 1884 * @param isEffective 是否有效 1885 */ 1886 @Override 1887 public <T, V> R notLike(LambdaGetter<T> column, V value, Predicate<V> isEffective) { 1888 and(QueryMethods.column(column).notLike(value, isEffective)); 1889 return (R) this; 1890 } 1891 1892 1893 /** 1894 * {@code NOT LIKE value%} 1895 * 1896 * @param column 列名 1897 * @param value 条件的值 1898 */ 1899 @Override 1900 public R notLikeLeft(String column, Object value) { 1901 and(QueryMethods.column(column).notLikeLeft(value)); 1902 return (R) this; 1903 } 1904 1905 /** 1906 * {@code NOT LIKE value%} 1907 * 1908 * @param column 列名, lambda 展示 1909 * @param value 值 1910 */ 1911 @Override 1912 public <T> R notLikeLeft(LambdaGetter<T> column, Object value) { 1913 and(QueryMethods.column(column).notLikeLeft(value)); 1914 return (R) this; 1915 } 1916 1917 /** 1918 * {@code NOT LIKE value%} 1919 * 1920 * @param column 列名 1921 * @param value 条件的值 1922 * @param isEffective 是否有效 1923 */ 1924 @Override 1925 public R notLikeLeft(String column, Object value, boolean isEffective) { 1926 and(QueryMethods.column(column).notLikeLeft(value).when(isEffective)); 1927 return (R) this; 1928 } 1929 1930 /** 1931 * {@code NOT LIKE value%} 1932 * 1933 * @param column 列名, lambda 展示 1934 * @param value 值 1935 * @param isEffective 是否有效 1936 */ 1937 @Override 1938 public <T> R notLikeLeft(LambdaGetter<T> column, Object value, boolean isEffective) { 1939 and(QueryMethods.column(column).notLikeLeft(value).when(isEffective)); 1940 return (R) this; 1941 } 1942 1943 /** 1944 * {@code NOT LIKE value%} 1945 * 1946 * @param column 列名 1947 * @param value 条件的值 1948 * @param isEffective 是否有效 1949 */ 1950 @Override 1951 public <V> R notLikeLeft(String column, V value, Predicate<V> isEffective) { 1952 and(QueryMethods.column(column).notLikeLeft(value, isEffective)); 1953 return (R) this; 1954 } 1955 1956 /** 1957 * {@code NOT LIKE value%} 1958 * 1959 * @param column 列名, lambda 展示 1960 * @param value 值 1961 * @param isEffective 是否有效 1962 */ 1963 @Override 1964 public <T, V> R notLikeLeft(LambdaGetter<T> column, V value, Predicate<V> isEffective) { 1965 and(QueryMethods.column(column).notLikeLeft(value, isEffective)); 1966 return (R) this; 1967 } 1968 1969 1970 /** 1971 * {@code NOT LIKE %value} 1972 * 1973 * @param column 列名 1974 * @param value 条件的值 1975 */ 1976 @Override 1977 public R notLikeRight(String column, Object value) { 1978 and(QueryMethods.column(column).notLikeRight(value)); 1979 return (R) this; 1980 } 1981 1982 /** 1983 * {@code NOT LIKE %value} 1984 * 1985 * @param column 列名, lambda 展示 1986 * @param value 值 1987 */ 1988 @Override 1989 public <T> R notLikeRight(LambdaGetter<T> column, Object value) { 1990 and(QueryMethods.column(column).notLikeRight(value)); 1991 return (R) this; 1992 } 1993 1994 /** 1995 * {@code NOT LIKE %value} 1996 * 1997 * @param column 列名 1998 * @param value 条件的值 1999 * @param isEffective 是否有效 2000 */ 2001 @Override 2002 public R notLikeRight(String column, Object value, boolean isEffective) { 2003 and(QueryMethods.column(column).notLikeRight(value).when(isEffective)); 2004 return (R) this; 2005 } 2006 2007 /** 2008 * {@code NOT LIKE %value} 2009 * 2010 * @param column 列名, lambda 展示 2011 * @param value 值 2012 * @param isEffective 是否有效 2013 */ 2014 @Override 2015 public <T> R notLikeRight(LambdaGetter<T> column, Object value, boolean isEffective) { 2016 and(QueryMethods.column(column).notLikeRight(value).when(isEffective)); 2017 return (R) this; 2018 } 2019 2020 /** 2021 * {@code NOT LIKE %value} 2022 * 2023 * @param column 列名 2024 * @param value 条件的值 2025 * @param isEffective 是否有效 2026 */ 2027 @Override 2028 public <V> R notLikeRight(String column, V value, Predicate<V> isEffective) { 2029 and(QueryMethods.column(column).notLikeRight(value, isEffective)); 2030 return (R) this; 2031 } 2032 2033 /** 2034 * {@code NOT LIKE %value} 2035 * 2036 * @param column 列名, lambda 展示 2037 * @param value 值 2038 * @param isEffective 是否有效 2039 */ 2040 @Override 2041 public <T, V> R notLikeRight(LambdaGetter<T> column, V value, Predicate<V> isEffective) { 2042 and(QueryMethods.column(column).notLikeRight(value, isEffective)); 2043 return (R) this; 2044 } 2045 2046 2047 /** 2048 * {@code IS NULL} 2049 * 2050 * @param column 列名 2051 */ 2052 @Override 2053 public R isNull(String column) { 2054 and(QueryMethods.column(column).isNull()); 2055 return (R) this; 2056 } 2057 2058 /** 2059 * {@code IS NULL} 2060 * 2061 * @param column 列名, lambda 展示 2062 */ 2063 @Override 2064 public <T> R isNull(LambdaGetter<T> column) { 2065 and(QueryMethods.column(column).isNull()); 2066 return (R) this; 2067 } 2068 2069 /** 2070 * {@code IS NULL} 2071 * 2072 * @param column 列名 2073 * @param isEffective 是否有效 2074 */ 2075 @Override 2076 public R isNull(String column, boolean isEffective) { 2077 and(QueryMethods.column(column).isNull(isEffective)); 2078 return (R) this; 2079 } 2080 2081 /** 2082 * {@code IS NULL} 2083 * 2084 * @param column 列名, lambda 展示 2085 * @param isEffective 是否有效 2086 */ 2087 @Override 2088 public <T> R isNull(LambdaGetter<T> column, boolean isEffective) { 2089 and(QueryMethods.column(column).isNull(isEffective)); 2090 return (R) this; 2091 } 2092 2093 /** 2094 * {@code IS NULL} 2095 * 2096 * @param column 列名 2097 * @param isEffective 是否有效 2098 */ 2099 @Override 2100 public R isNull(String column, BooleanSupplier isEffective) { 2101 and(QueryMethods.column(column).isNull(isEffective)); 2102 return (R) this; 2103 } 2104 2105 /** 2106 * {@code IS NULL} 2107 * 2108 * @param column 列名, lambda 展示 2109 * @param isEffective 是否有效 2110 */ 2111 @Override 2112 public <T> R isNull(LambdaGetter<T> column, BooleanSupplier isEffective) { 2113 and(QueryMethods.column(column).isNull(isEffective)); 2114 return (R) this; 2115 } 2116 2117 2118 /** 2119 * {@code IS NOT NULL} 2120 * 2121 * @param column 列名 2122 */ 2123 @Override 2124 public R isNotNull(String column) { 2125 and(QueryMethods.column(column).isNotNull()); 2126 return (R) this; 2127 } 2128 2129 /** 2130 * {@code IS NOT NULL} 2131 * 2132 * @param column 列名, lambda 展示 2133 */ 2134 @Override 2135 public <T> R isNotNull(LambdaGetter<T> column) { 2136 and(QueryMethods.column(column).isNotNull()); 2137 return (R) this; 2138 } 2139 2140 /** 2141 * {@code IS NOT NULL} 2142 * 2143 * @param column 列名 2144 * @param isEffective 是否有效 2145 */ 2146 @Override 2147 public R isNotNull(String column, boolean isEffective) { 2148 and(QueryMethods.column(column).isNotNull(isEffective)); 2149 return (R) this; 2150 } 2151 2152 /** 2153 * {@code IS NOT NULL} 2154 * 2155 * @param column 列名, lambda 展示 2156 * @param isEffective 是否有效 2157 */ 2158 @Override 2159 public <T> R isNotNull(LambdaGetter<T> column, boolean isEffective) { 2160 and(QueryMethods.column(column).isNotNull(isEffective)); 2161 return (R) this; 2162 } 2163 2164 /** 2165 * {@code IS NOT NULL} 2166 * 2167 * @param column 列名 2168 * @param isEffective 是否有效 2169 */ 2170 @Override 2171 public R isNotNull(String column, BooleanSupplier isEffective) { 2172 and(QueryMethods.column(column).isNotNull(isEffective)); 2173 return (R) this; 2174 } 2175 2176 /** 2177 * {@code IS NOT NULL} 2178 * 2179 * @param column 列名, lambda 展示 2180 * @param isEffective 是否有效 2181 */ 2182 @Override 2183 public <T> R isNotNull(LambdaGetter<T> column, BooleanSupplier isEffective) { 2184 and(QueryMethods.column(column).isNotNull(isEffective)); 2185 return (R) this; 2186 } 2187 2188 2189 @Override 2190 public R clone() { 2191 return (R) super.clone(); 2192 } 2193 2194}