# Coconut **Repository Path**: itartteam/coconut ## Basic Information - **Project Name**: Coconut - **Description**: 数据的变更比对 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2021-08-12 - **Last Updated**: 2025-01-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: 数据变更比对 ## README # Coconut #### 介绍 数据的变更比对 #### 软件架构 软件架构说明 #### 使用说明 1. 差异化注解 @DiffIgnore 忽略不比较的属性
@UnionId 标识对象的唯一性,匹配新旧版本需要对比的对象,支持多个属性联合组成唯一ID
@EntityTag 部件标识,区分各个复合属性
@PropertyComparator 属性比较器,支持自定义属性比较方法
@PropertyField 属性域注解,可自定义属性别名,属性展示顺序
@CollectionFlag 集合/复合属性标识 2. 支持单个对象,集合的比较 提供Coconut.processObject(Object, Object)比较单个对象
提供Coconut.processCollection(List, List)比较集合对象 3. 定制化返回结果 提供List getFinaChangeList()/List getFinalChangeProperty()方法分别返回变化的列表/属性 或者全量的列表/属性 #### 特技 Coconut提供打印差异树的方法Coconut.prettyPrint(list,boolean),灵活打印结果
EntityTag:BUSINESS/1 MODIFIED
--业务基本信息ID:1==>1 UNCHANGED
--业务基本信息编号:100111100==>10000 MODIFIED
--EntityTag:BUSINESS_DETAIL/12 REMOVED
----明细ID:12==>null REMOVED
----明细描述:B==>null REMOVED
----业务基本信息ID:1==>null REMOVED
--EntityTag:BUSINESS_DETAIL/13 ADDED
----明细ID:null==>13 ADDED
----明细描述:null==>C ADDED
----业务基本信息ID:null==>1 ADDED
--EntityTag:BUSINESS_DETAIL/11 MODIFIED
----明细ID:11==>11 UNCHANGED
----明细描述:A==>D MODIFIED
----业务基本信息ID:1==>1 UNCHANGED