# 2022年4月17日 - 1.2.2 发布
# mybatis-mapper 项目升级到 1.2.2
针对 issues#29 (opens new window) 修复的问题,mybatis-mapper 项目升级到 1.2.2。
当通过方法引用获取列信息时,使用的 Java Bean 规范,如果存在列 a_tag
对应如 aTag
这样的 Java 字段,生成的 getATag
会认为字段为 ATag
,和 aTag
匹配不上导致出错。
修改后,在匹配字段时会先区分大小写进行匹配,匹配不到时会再进行不区分大小写的匹配,仍然无效时会抛出异常。
# 2022年4月17日 - 1.2.1 发布
# mybatis-mapper 项目升级到 1.2.1
ExampleWrapper
方法增加 boolean useCondition
参数,当值为 true
时,条件生效,反之无效
用法:
mapper.wrapper()
.eq(StrUtil.isNotEmpty(sex), User::getSex, "女")
.or(c -> c.gt(User::getId, 40), c -> c.lt(false, User::getId, 10))
.or()
.startsWith(User::getUserName, "张")
.orderByAsc(User::getId).list();
当 StrUtil.isNotEmpty(sex)
结果为 true
时,该条件有效,为 false
时无效。
有效时输出的 SQL 如下:
SELECT id,name AS userName,sex FROM user WHERE ( sex = ? AND ( ( id > ? ) ) ) OR ( name LIKE ? ) ORDER BY id ASC
-- Parameters: 女(String), 40(Integer), 张%(String)
无效时输出的 SQL 如下:
SELECT id,name AS userName,sex FROM user WHERE ( ( ( id > ? ) ) ) OR ( name LIKE ? ) ORDER BY id ASC
-- Parameters: 40(Integer), 张%(String)
通过这种用法可以保证当需要判断来设置条件时,可以仍然在链式调用中使用。
注意
or()
和or(参数)
方法的区别,详细用法和区别请看 1.2.0 更新日志。