# 2024年5月26日 - 2.2.3 发布

# What's Changed

  • insertupdate泛型增加<S extends T>
  • Example支持TypeHandler配置

# insertupdate泛型增加<S extends T>

  /**
   * 保存实体
   *
   * @param entity 实体类
   * @return 1成功,0失败
   */
  @Lang(Caching.class)
  @InsertProvider(type = EntityProvider.class, method = "insert")
  <S extends T> int insert(S entity);

insert和update时可以使用实体类的子类进行操作。

# Example支持TypeHandler配置

原来在实体类配置的 TypeHandlerExample操作无效,这次更新后可以自动生效。

单元测试方法如下:

 @Test
  public void testUpdateByExampleSetValues() {
    SqlSession sqlSession = getSqlSession();
    try {
      ExampleMapper<UserAuto, Example<UserAuto>> exampleMapper = sqlSession.getMapper(UserAutoBaseMapper.class);
      Example<UserAuto> example = new Example();
      example.createCriteria().andEqualTo(UserAuto::getId, 1L);
      example.set(UserAuto::getAddress, new UserAuto.Address("河北省", "秦皇岛市"));

      Assert.assertEquals(1, exampleMapper.updateByExampleSetValues(example));
      sqlSession.rollback();
    } finally {
      //不要忘记关闭sqlSession
      sqlSession.close();
    }
  }

这里的 UserAuto.Address 是一个对象,需要类型处理为单个字段。

这个改动后,Example 中的 andLike(Fn<T, Object> fn, String value) 改为了 andLike(Fn<T, Object> fn, Object value), 因为字段是对象的情况下可以通过类型处理为 String,这里只接收 String 就无法支持 UserAuto.Address 模糊查询。 该字段的模糊查询也发生了变化,这会导致相关代码的不兼容:

Example<UserAuto> example = userAutoMapper.example();
example.createCriteria().andLike(UserAuto::getAddress, "河北省%");

改为:

Example<UserAuto> example = userAutoMapper.example();
example.createCriteria().andLike(UserAuto::getAddress, new UserAuto.Address("河北省", "%"));

Full Changelog: https://github.com/mybatis-mapper/mapper/compare/2.2.2...2.2.3

# mybatis-provider 发布 2.2.5

# What's Changed

  • fixed #mybatis-mapper/mapper/issues/108 by @mfeng-ya in https://github.com/mybatis-mapper/provider/pull/13
  • fixed #mybatis-mapper/mapper/issues/97 检测是否设置了主键策略异常

# New Contributors

  • @mfeng-ya made their first contribution in https://github.com/mybatis-mapper/provider/pull/13

Full Changelog: https://github.com/mybatis-mapper/provider/compare/2.2.4...2.2.5