3.1.2.2 通过属性相等判断等价 当 equals() 返回 true,却在 Set 里“消失”了:一次价值十万的值对象等价性事故复盘 凌晨两点十七分,监控告警第三次弹窗——订单履约服务的“履约单去重率”跌穿 99.2%,下游仓储系统开始积压重复出库指令。运维同事甩来一张截图:同一笔用户下单请求,在 127 毫秒内被处理了三次,生成三张 ID 不同但业务语义完全一致的 。日志里赫然印着三行几乎一模一样的 JSON: 它们本该被识别为同一个履约意图,被塞进一个 后自动去重。可现实是:三进三出,零合并。 这不是压力测试漏掉的边界 case。这是值对象(Value Object)在生产环境里,用最暴烈的方式,扇了我们一记耳光—— “通过属性相等判断等价”,从来不是一句教科书定义;