# 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 更新日志