# EntityListHandle **Repository Path**: shenshu520/EntityListHandle ## Basic Information - **Project Name**: EntityListHandle - **Description**: 实体集合处理对象 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-11-26 - **Last Updated**: 2024-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EntityListHandle #### 概述 EntityListHandle 是一个 Java 类,旨在简化和高效地处理实体集合,特别是在不希望在数据库中联合查询的情况下。它可以将原始查询的数据转换为待处理格式,并通过业务相关键(如订单号、物流号等)来检索和合并相关数据,减少代码复杂性,提高工作效率。 **例子:** test/java 下 com.shenshu.example1 包,Example1类 #### 特性 - **数据转换** :将实体对象列表转换为适合处理的 Map 数据结构。 - **业务键管理** :支持初始化和管理多个业务键,以便于后续的数据查询。 - **数据合并** :允许将多个数据集合根据业务键进行合并,支持自定义合并逻辑。 - **灵活性** :可将结果转换回指定类型的实体对象 #### 使用说明 1.**基本用法** ```java // 1. 查询订单列表 List allOrders = DataDao.getAllOrders(); EntityListHandle orderListHandle = new EntityListHandle(allOrders);//创建EntityListHandle对象 Set userId = orderListHandle.getKeyListInteger("userId");//获取业务键userId的集合 // 2.查询用户列表 List userListByIds = DataDao.getUserListByIds(userId); EntityListHandle userListHandle = new EntityListHandle(userListByIds);//创建EntityListHandle对象 // 2.订单列表关联用户列表 orderListHandle.joinEntity(userListHandle, "userId", "id", "user"); // 5. 输出结果 List orderDetailsList = orderListHandle.getResult(OrderDetails.class); ``` #### 方法概述 - getKeyList(String keyName):获取指定业务键的对象集合。 - join(EntityListHandle joinListDecorator, String thisKeyName, String joinKeyName, BiConsumer>, List>> consumer):自定义合并其他集合数据。 - getResult():获取处理后的结果列表。 - getResult(Class cLass):获取处理后的结果并转换为指定类型的实体对象。 #### 注意事项 1. 确保用于转换的实体类具有默认构造方法。 1. 使用 join 方法时,确保两个 EntityListHandle 实例中的业务键名称一致。