Package cn.net.pap.common.jsonorm.util
Class JsonORMUtil
java.lang.Object
cn.net.pap.common.jsonorm.util.JsonORMUtil
JSON ORM 工具类
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic Boolean
数据完整性检测,业务字段数据和规则是否匹配static <T> List<T>
deepCopyList
(List<T> originalList, Class<T> clazz) List 深拷贝extractKeyValues
(com.fasterxml.jackson.databind.JsonNode node, String targetKey) 使用 jackson 把 JSON 对象中特定节点的值都查询出来, 可用于参数校验、参数提取findUniqueKeyValuePairs
(List<Map<String, Object>> mapList) 从 map list 里面进行遍历取值,把 多个集合中具有相同key和value不分的数据查出来,放到一个单独的 map 里面返回, 入参: [{key1=value1, key2=value2}, {key1=value1, key2=value2, key3=value3}, {key1=value1}] 出参: {key1=value1}flattenJson
(com.fasterxml.jackson.databind.JsonNode jsonNode) json 转平铺static TableFieldValueDTO
geneTableFieldValueDTO
(String tableName, MappingTableDTO mappingTableDTO, Map<String, Object> values) 根据 业务 - 表结构 映射关系,维护对应的操作数据static List<TableFieldValueDTO>
geneTableFieldValueDTOList
(MappingORMDTO mappingORMDTO, com.fasterxml.jackson.databind.JsonNode jsonNode) 将 业务数据-jsonNode 按照 业务-表结构映射规则-mappingORMDTO 进行封装处理,转换为结构化操作数据static String
readFileToString
(File file) 文档读取 - 读取文本内容static List<DelDetailTableValueDTO<String>>
refreshTableFieldValueDTOListDelete
(List<TableFieldValueDTO> tableFieldValueDTOList) static List<TableFieldValueDTO>
refreshTableFieldValueDTOListInsert
(List<TableFieldValueDTO> tableFieldValueDTOList) 刷新生成的 TableFieldValueDTO 对象,根据主键和外键标识,将主键和外键的关联关系添加进来。static List<TableFieldValueDTO>
refreshTableFieldValueDTOListInsert
(List<TableFieldValueDTO> tableFieldValueDTOList, Boolean usingInputPK) 刷新生成的 TableFieldValueDTO 对象,根据主键和外键标识,将主键和外键的关联关系添加进来。static DelDetailTableValueDTO<String>
refreshTableFieldValueDTOListUpdate2Del
(List<TableFieldValueDTO> tableFieldValueDTOList) 如果是一对多关系的更新操作,那么多方的数据部分需要进行删除,这里将多方数据删除后新增,这里维护对应需要删除的数据。withFKFilter
(String tableName, MappingTableDTO mappingTableDTO, List<Map<String, Object>> flattenedMapList) 如果存在外键设置,那么需要过滤一下平铺的map,把纯主表的map对象进行移除
-
Constructor Details
-
JsonORMUtil
public JsonORMUtil()
-
-
Method Details
-
readFileToString
文档读取 - 读取文本内容- Parameters:
file
-- Returns:
- Throws:
IOException
-
findUniqueKeyValuePairs
从 map list 里面进行遍历取值,把 多个集合中具有相同key和value不分的数据查出来,放到一个单独的 map 里面返回, 入参: [{key1=value1, key2=value2}, {key1=value1, key2=value2, key3=value3}, {key1=value1}] 出参: {key1=value1}- Parameters:
mapList
-- Returns:
-
geneTableFieldValueDTOList
public static List<TableFieldValueDTO> geneTableFieldValueDTOList(MappingORMDTO mappingORMDTO, com.fasterxml.jackson.databind.JsonNode jsonNode) throws Exception 将 业务数据-jsonNode 按照 业务-表结构映射规则-mappingORMDTO 进行封装处理,转换为结构化操作数据- Parameters:
mappingORMDTO
-jsonNode
-- Returns:
- Throws:
Exception
-
refreshTableFieldValueDTOListInsert
public static List<TableFieldValueDTO> refreshTableFieldValueDTOListInsert(List<TableFieldValueDTO> tableFieldValueDTOList) throws Exception 刷新生成的 TableFieldValueDTO 对象,根据主键和外键标识,将主键和外键的关联关系添加进来。- Parameters:
tableFieldValueDTOList
-- Returns:
- Throws:
Exception
-
refreshTableFieldValueDTOListInsert
public static List<TableFieldValueDTO> refreshTableFieldValueDTOListInsert(List<TableFieldValueDTO> tableFieldValueDTOList, Boolean usingInputPK) throws Exception 刷新生成的 TableFieldValueDTO 对象,根据主键和外键标识,将主键和外键的关联关系添加进来。- Parameters:
tableFieldValueDTOList
-usingInputPK
- true代表使用前端传递过来的主键值(更新操作使用先删除再插入,此时可以传递true使用前端传值); false代表使用服务端的主键生成策略- Returns:
- Throws:
Exception
-
refreshTableFieldValueDTOListUpdate2Del
public static DelDetailTableValueDTO<String> refreshTableFieldValueDTOListUpdate2Del(List<TableFieldValueDTO> tableFieldValueDTOList) throws Exception 如果是一对多关系的更新操作,那么多方的数据部分需要进行删除,这里将多方数据删除后新增,这里维护对应需要删除的数据。- Parameters:
tableFieldValueDTOList
-- Returns:
- Throws:
Exception
-
refreshTableFieldValueDTOListDelete
public static List<DelDetailTableValueDTO<String>> refreshTableFieldValueDTOListDelete(List<TableFieldValueDTO> tableFieldValueDTOList) throws Exception - Throws:
Exception
-
geneTableFieldValueDTO
public static TableFieldValueDTO geneTableFieldValueDTO(String tableName, MappingTableDTO mappingTableDTO, Map<String, Object> values) 根据 业务 - 表结构 映射关系,维护对应的操作数据- Parameters:
tableName
- 操作表名mappingTableDTO
- 业务 - 表结构 映射关系values
- 传递过来的数据值- Returns:
-
withFKFilter
public static List<Map<String,Object>> withFKFilter(String tableName, MappingTableDTO mappingTableDTO, List<Map<String, Object>> flattenedMapList) 如果存在外键设置,那么需要过滤一下平铺的map,把纯主表的map对象进行移除- Parameters:
tableName
-mappingTableDTO
-flattenedMapList
-- Returns:
-
checkMapAllInFieldList
数据完整性检测,业务字段数据和规则是否匹配- Parameters:
fieldList
-values
-- Returns:
-
deepCopyList
List 深拷贝- Type Parameters:
T
-- Parameters:
originalList
-- Returns:
- Throws:
IOException
-
extractKeyValues
public static List<String> extractKeyValues(com.fasterxml.jackson.databind.JsonNode node, String targetKey) 使用 jackson 把 JSON 对象中特定节点的值都查询出来, 可用于参数校验、参数提取- Parameters:
node
-targetKey
-- Returns:
-
flattenJson
public static List<Map<String,Object>> flattenJson(com.fasterxml.jackson.databind.JsonNode jsonNode) json 转平铺- Parameters:
jsonNode
-- Returns:
-