条件构造器
说明
:
- 以下出现的第一个入参
boolean condition
表示该条件是否加入最后生成的sql中- 没有标明
condition
的方法,默认为true
- 以下出现的泛型
Param
均为Wrapper
的子类实例(均具有AbstractWrapper
的所有方法)- 以下方法在入参中出现的
R
为泛型,在普通wrapper中是String
,在LambdaWrapper中是函数(例:Entity::getId
,Entity
为实体类,getId
为字段id
的getMethod)- 参数
R column
均表示数据库字段
,而不是实体类数据字段名!!!(字段名是数据库关键字的自己用转义符包裹!)!- 以下举例均为使用普通wrapper,入参为
Map
和List
的均以json
形式表现!- 使用中如果入参的
Map
或者List
为空,则不会加入最后生成的sql中!!!- 有任何疑问就点开源码看,看不懂函数的点击我学习新知识
警告
:
不支持以及不赞成在 RPC 调用中把 Wrapper 进行传输(远程调用)
- wrapper 很重
- 传输 wrapper 可以类比为你的 controller 用 map 接收值(开发一时爽,维护火葬场)
- 正确的 RPC 调用姿势是写一个 DTO 进行传输,被调用方再根据 DTO 执行相应的操作
- 我们拒绝接受任何关于 RPC 传输 Wrapper 报错相关的 issue 甚至 pr
eq:等于 =
eq(R column, Object val)
eq(boolean condition, R column, Object val)
例: eq("name", "老王")--->name = '老王'
ne:不等于 <>
ne(R column, Object val)
ne(boolean condition, R column, Object val)
例: ne("name", "老王")--->name <> '老王'
gt:大于 >
gt(R column, Object val)
gt(boolean condition, R column, Object val)
参考:
https://www.cnblogs.com/ziyue7575/p/d7b0ae33d4b51d97f490ee9f4092808b.html
网友评论