Skip to main content

v6.0.3 (2025-05-20)

<dependency>
<groupId>net.hasor</groupId>
<artifactId>dbvisitor</artifactId>
<version>6.0.3</version>
</dependency>

主要看点:

  1. 增强查询构造器在实体类型查询构造中对于字符串形式表达属性的支持性。
  2. 优化 BaseMapper 接口设计。
  3. 增强对联合主键的支持。
  4. 修复问题。

影响范围

  • BaseMapper 接口
  • InsertExecute 接口
  • JsonTypeHandler 类

更新内容

  • [新增] BaseMapper 的 update/upsert 方法(支持联合主键)
  • [新增] BaseMapper 增加 deleteByMap 可以通过 Map 来替代对象(支持联合主键)
  • [新增] BaseMapper 新增 replace/replaceByMap 方法,用于整行替换(支持联合主键)
  • [新增] BaseMapper 新增 updateByMap 方法功能和 update 一致,接受数据载体为 Map(支持联合主键)
  • [新增] BaseMapper 新增 deleteList/deleteListByMap 可以传递实体对象列表,并在数据库中删除它们(支持联合主键)
  • [新增] BaseMapper 新增 loadBy/loadListBy 方法参数可以是 Map、实体对象或其它类型。用于根据参考对象加载数据库记录,参考对象必须包含主键字段(支持联合主键)
  • [新增] 新增 EntityQueryFunc 接口功能和 QueryFunc 一样,为字符串方式传递属性名而设计,用于 EntityQuery 接口。
  • [新增] BaseMapper 的 pageBySample 方法增加两个重载方法,可以指定排序字段排序方式以及排序字段的 null 值排序策略。
  • [优化] BaseMapper 的 countBySample/pageBySample 方法接受的参考对象可以是 Map、实体对象或其它类型。
  • [优化] BaseMapper 的 initPageBySample 方法改名为 pageInitBySample 方便理解。
  • [优化] BaseMapper 的 update 方法将不在提供整行更新,通过 update/replace 两种方式更新数据来避免危险的整行跟心操作(支持联合主键)
  • [优化] BaseMapper 原有 deleteById/deleteByIds 方法简化为只能传递具体 id 来进行删除。新版本不在支持联合主键。并且不在支持直接删除对象(使用 deleteList/deleteListByMap 替代)
  • [优化] BaseMapper 原有 selectById/selectByIds 简化为只能传递具体 id 来进行查询。新版本中不在支持联合主键(使用 loadBy/loadListBy 替代)
  • [优化] JsonTypeHandler 在自动选择 Json 序列化器时会优先选择较为稳定的 Jackson,其次选择 Gson,然后是 fastJSON,最后是 fastJSON2
  • [优化] PageObject 和 PageResult 的 2 参数构造方法,参数含义从 pageSize, totalCount 修改为更为实用的 pageNumber, pageSize。
  • [优化] AbstractSelect 中的 lockGroupBy/lockOrderBy 字段访问修饰符从 private 改为 protected。
  • [优化] AbstractSelect 中的 addOrderBy/selectApply 方法不在接收属性类型从 P 改为字符串,方便子类 EntityQueryImpl 复用。
  • [优化] OrderNullsStrategy 枚举增加 valueOfCode 工具方法。
  • [修复] 查询构造器(Query、Update、Delete)在处理 eq/ne NULL 值情况时,应该使用 is null 或 is not null 而非 = ?
  • [修复] InsertExecute 接口的 applyEntity(T entity) 和 applyEntity(T... entity) 方法,没有正确识别 Map 类型导致插入数据缺失的问题。