datai/docs/archive/prompts/002-entity-mapper-create.md

1127 lines
26 KiB
Markdown
Raw Permalink Normal View History

# Prompt - 基础实体类和Mapper创建
## 输入引用
引用相关的 docs 文档链接:
- [REQ-010-2.md](../requirements/REQ-010-2.md) - 基础实体类和Mapper创建需求文档
- [0011-entity-mapper-create.md](../decisions/adr/0011-entity-mapper-create.md) - 基础实体类和Mapper创建架构决策
- [REQ-010.md](../requirements/REQ-010.md) - Salesforce元数据拉取和部署主需求文档
- [REQ-010-1.md](../requirements/REQ-010-1.md) - 数据库表结构设计和创建
- [metadata-module.md](../reference-code/com/docs/metadata-module.md) - Salesforce Metadata API 模块说明(唯一真源)
- [index.md](../reference-code/com/docs/index.md) - Salesforce SOAP API Java 客户端参考文档(唯一真源)
## Context Maps
强制列出本次 Prompt 依赖的 Canvas 文件:
- [Authentication.canvas](../Authentication.canvas) - 项目架构视觉化展示
- **相关节点**: [集成Mapper](node_integration_mapper) - 处理集成相关数据的持久化操作
- **快照时间**: 2026-01-19 00:00:00
## 目标
为9张数据库表创建对应的Java实体类、Mapper接口和XML映射文件使用MyBatis Plus框架提供基础的CRUD操作为后续功能开发提供数据访问基础。
## 输出格式
代码示例语言Java
## 约束
- **技术栈限制**: 必须使用MyBatis Plus框架
- **框架约束**: 必须继承BaseMapper获取基础CRUD方法
- **注解约束**: 必须使用MyBatis Plus注解@TableName、@TableId、@TableField
- **编码规范约束**: 必须遵循阿里巴巴Java开发规范
- **依赖约束**: 必须依赖于REQ-010-1创建的数据库表
## Rule Set
"请严格参考 @Authentication.canvas 中的状态机转移逻辑,不要自行发挥。"
**具体规则**
- 必须使用 Canvas 中定义的类名和方法名
- 必须遵循 Canvas 中定义的调用关系
- 必须参考 Canvas 中的流程图逻辑
## 验收标准
- **功能完整性**: 9个实体类、9个Mapper接口、9个Mapper XML文件创建成功
- **代码规范性**: 代码符合阿里巴巴Java开发规范有清晰的注释
- **注解正确性**: MyBatis Plus注解使用正确包括@TableName、@TableId、@TableField
- **字段映射正确性**: 实体类字段与数据库表字段一一对应
- **JSON字段处理**: JSON类型字段能够正确序列化和反序列化
- **大字段处理**: TEXT类型大字段使用String类型处理
- **敏感字段保护**: 敏感字段client_secret、password、security_token使用@TableField(select = false)注解,默认不查询
- **Lombok使用**: 实体类使用Lombok简化代码包括@Data、@Builder、@NoArgsConstructor、@AllArgsConstructor
- **Mapper接口正确性**: Mapper接口继承BaseMapper使用@Mapper注解标记
- **XML配置正确性**: XML映射文件namespace和resultType配置正确
## 风险
- **实体类映射风险**: 实体类字段映射错误可能导致数据读写失败
- **Mapper XML配置风险**: Mapper XML配置错误可能导致SQL执行失败
- **JSON字段处理风险**: JSON类型字段处理不当可能导致数据丢失
- **大字段处理风险**: 大字段处理不当可能导致性能问题
- **框架兼容风险**: MyBatis Plus版本兼容性问题
## 实现指南
### 1. 实体类创建
#### 1.1 DataiMetaOrgConfig 实体类
```java
package com.datai.salesforce.metadata.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* Salesforce组织配置实体类
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("datai_meta_org_config")
public class DataiMetaOrgConfig implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 组织ID
*/
@TableField("org_id")
private String orgId;
/**
* 组织名称
*/
@TableField("org_name")
private String orgName;
/**
* 实例URL
*/
@TableField("instance_url")
private String instanceUrl;
/**
* 用户名
*/
@TableField("username")
private String username;
/**
* 密码(敏感字段,默认不查询)
*/
@TableField(value = "password", select = false)
private String password;
/**
* 安全令牌(敏感字段,默认不查询)
*/
@TableField(value = "security_token", select = false)
private String securityToken;
/**
* 客户端ID
*/
@TableField("client_id")
private String clientId;
/**
* 客户端密钥(敏感字段,默认不查询)
*/
@TableField(value = "client_secret", select = false)
private String clientSecret;
/**
* API版本
*/
@TableField("api_version")
private String apiVersion;
/**
* 状态
*/
@TableField("status")
private String status;
/**
* 创建时间
*/
@TableField("create_time")
private String createTime;
/**
* 更新时间
*/
@TableField("update_time")
private String updateTime;
/**
* 创建人
*/
@TableField("create_by")
private String createBy;
/**
* 更新人
*/
@TableField("update_by")
private String updateBy;
/**
* 备注
*/
@TableField("remark")
private String remark;
}
```
#### 1.2 DataiMetaTask 实体类
```java
package com.datai.salesforce.metadata.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 元数据任务定义实体类
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("datai_meta_task")
public class DataiMetaTask implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 任务名称
*/
@TableField("task_name")
private String taskName;
/**
* 任务类型retrieve/deploy
*/
@TableField("task_type")
private String taskType;
/**
* 组织ID
*/
@TableField("org_id")
private String orgId;
/**
* 元数据类型ApexClass/ApexTrigger/CustomObject等
*/
@TableField("metadata_type")
private String metadataType;
/**
* 元数据组件列表JSON格式
*/
@TableField("component_list")
private String componentList;
/**
* 部署选项JSON格式
*/
@TableField("deploy_options")
private String deployOptions;
/**
* 任务状态pending/running/completed/failed
*/
@TableField("status")
private String status;
/**
* 创建时间
*/
@TableField("create_time")
private String createTime;
/**
* 更新时间
*/
@TableField("update_time")
private String updateTime;
/**
* 创建人
*/
@TableField("create_by")
private String createBy;
/**
* 更新人
*/
@TableField("update_by")
private String updateBy;
/**
* 备注
*/
@TableField("remark")
private String remark;
}
```
#### 1.3 DataiMetaPackageItem 实体类
```java
package com.datai.salesforce.metadata.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 元数据包项实体类
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("datai_meta_package_item")
public class DataiMetaPackageItem implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 任务ID
*/
@TableField("task_id")
private Long taskId;
/**
* 组件类型
*/
@TableField("component_type")
private String componentType;
/**
* 组件API名称
*/
@TableField("api_name")
private String apiName;
/**
* 文件路径
*/
@TableField("file_path")
private String filePath;
/**
* 文件内容TEXT类型大字段
*/
@TableField("file_content")
private String fileContent;
/**
* 创建时间
*/
@TableField("create_time")
private String createTime;
/**
* 更新时间
*/
@TableField("update_time")
private String updateTime;
}
```
#### 1.4 DataiMetaComponent 实体类
```java
package com.datai.salesforce.metadata.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 元数据组件实体类
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("datai_meta_component")
public class DataiMetaComponent implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 组件类型
*/
@TableField("component_type")
private String componentType;
/**
* 组件API名称
*/
@TableField("api_name")
private String apiName;
/**
* 组件名称
*/
@TableField("component_name")
private String componentName;
/**
* 文件路径
*/
@TableField("file_path")
private String filePath;
/**
* 文件内容TEXT类型大字段
*/
@TableField("file_content")
private String fileContent;
/**
* 文件哈希
*/
@TableField("file_hash")
private String fileHash;
/**
* 创建时间
*/
@TableField("create_time")
private String createTime;
/**
* 更新时间
*/
@TableField("update_time")
private String updateTime;
}
```
#### 1.5 DataiMetaComponentVersion 实体类
```java
package com.datai.salesforce.metadata.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 元数据组件版本实体类
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("datai_meta_component_version")
public class DataiMetaComponentVersion implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 组件ID
*/
@TableField("component_id")
private Long componentId;
/**
* 版本号
*/
@TableField("version_number")
private String versionNumber;
/**
* 文件路径
*/
@TableField("file_path")
private String filePath;
/**
* 文件内容TEXT类型大字段
*/
@TableField("file_content")
private String fileContent;
/**
* 文件哈希
*/
@TableField("file_hash")
private String fileHash;
/**
* 创建时间
*/
@TableField("create_time")
private String createTime;
}
```
#### 1.6 DataiMetaJobExecution 实体类
```java
package com.datai.salesforce.metadata.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 元数据作业执行实体类
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("datai_meta_job_execution")
public class DataiMetaJobExecution implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 任务ID
*/
@TableField("task_id")
private Long taskId;
/**
* 作业类型retrieve/deploy
*/
@TableField("job_type")
private String jobType;
/**
* 作业状态pending/running/completed/failed
*/
@TableField("status")
private String status;
/**
* 进度百分比
*/
@TableField("progress")
private Integer progress;
/**
* 开始时间
*/
@TableField("start_time")
private String startTime;
/**
* 结束时间
*/
@TableField("end_time")
private String endTime;
/**
* 耗时(毫秒)
*/
@TableField("duration")
private Long duration;
/**
* 错误信息TEXT类型大字段
*/
@TableField("error_message")
private String errorMessage;
/**
* 创建时间
*/
@TableField("create_time")
private String createTime;
/**
* 更新时间
*/
@TableField("update_time")
private String updateTime;
}
```
#### 1.7 DataiMetaDeployHistory 实体类
```java
package com.datai.salesforce.metadata.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 元数据部署历史实体类
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("datai_meta_deploy_history")
public class DataiMetaDeployHistory implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 任务ID
*/
@TableField("task_id")
private Long taskId;
/**
* 部署状态pending/running/completed/failed
*/
@TableField("status")
private String status;
/**
* 部署类型full/quick/destructive
*/
@TableField("deploy_type")
private String deployType;
/**
* 开始时间
*/
@TableField("start_time")
private String startTime;
/**
* 结束时间
*/
@TableField("end_time")
private String endTime;
/**
* 耗时(毫秒)
*/
@TableField("duration")
private Long duration;
/**
* 错误信息TEXT类型大字段
*/
@TableField("error_message")
private String errorMessage;
/**
* 创建时间
*/
@TableField("create_time")
private String createTime;
/**
* 更新时间
*/
@TableField("update_time")
private String updateTime;
}
```
#### 1.8 DataiMetaDeployComponentResult 实体类
```java
package com.datai.salesforce.metadata.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 元数据部署组件结果实体类
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("datai_meta_deploy_component_result")
public class DataiMetaDeployComponentResult implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 部署历史ID
*/
@TableField("deploy_history_id")
private Long deployHistoryId;
/**
* 组件类型
*/
@TableField("component_type")
private String componentType;
/**
* 组件API名称
*/
@TableField("api_name")
private String apiName;
/**
* 部署状态success/failed
*/
@TableField("status")
private String status;
/**
* 错误信息TEXT类型大字段
*/
@TableField("error_message")
private String errorMessage;
/**
* 创建时间
*/
@TableField("create_time")
private String createTime;
/**
* 更新时间
*/
@TableField("update_time")
private String updateTime;
}
```
#### 1.9 DataiMetaJobLog 实体类
```java
package com.datai.salesforce.metadata.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 元数据作业日志实体类
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("datai_meta_job_log")
public class DataiMetaJobLog implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 作业执行ID
*/
@TableField("job_execution_id")
private Long jobExecutionId;
/**
* 日志级别INFO/WARN/ERROR
*/
@TableField("log_level")
private String logLevel;
/**
* 日志消息TEXT类型大字段
*/
@TableField("log_message")
private String logMessage;
/**
* 日志时间
*/
@TableField("log_time")
private String logTime;
/**
* 创建时间
*/
@TableField("create_time")
private String createTime;
}
```
### 2. Mapper接口创建
#### 2.1 DataiMetaOrgConfigMapper 接口
```java
package com.datai.salesforce.metadata.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.datai.salesforce.metadata.entity.DataiMetaOrgConfig;
import org.apache.ibatis.annotations.Mapper;
/**
* Salesforce组织配置Mapper接口
*/
@Mapper
public interface DataiMetaOrgConfigMapper extends BaseMapper<DataiMetaOrgConfig> {
}
```
#### 2.2 DataiMetaTaskMapper 接口
```java
package com.datai.salesforce.metadata.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.datai.salesforce.metadata.entity.DataiMetaTask;
import org.apache.ibatis.annotations.Mapper;
/**
* 元数据任务定义Mapper接口
*/
@Mapper
public interface DataiMetaTaskMapper extends BaseMapper<DataiMetaTask> {
}
```
#### 2.3 DataiMetaPackageItemMapper 接口
```java
package com.datai.salesforce.metadata.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.datai.salesforce.metadata.entity.DataiMetaPackageItem;
import org.apache.ibatis.annotations.Mapper;
/**
* 元数据包项Mapper接口
*/
@Mapper
public interface DataiMetaPackageItemMapper extends BaseMapper<DataiMetaPackageItem> {
}
```
#### 2.4 DataiMetaComponentMapper 接口
```java
package com.datai.salesforce.metadata.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.datai.salesforce.metadata.entity.DataiMetaComponent;
import org.apache.ibatis.annotations.Mapper;
/**
* 元数据组件Mapper接口
*/
@Mapper
public interface DataiMetaComponentMapper extends BaseMapper<DataiMetaComponent> {
}
```
#### 2.5 DataiMetaComponentVersionMapper 接口
```java
package com.datai.salesforce.metadata.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.datai.salesforce.metadata.entity.DataiMetaComponentVersion;
import org.apache.ibatis.annotations.Mapper;
/**
* 元数据组件版本Mapper接口
*/
@Mapper
public interface DataiMetaComponentVersionMapper extends BaseMapper<DataiMetaComponentVersion> {
}
```
#### 2.6 DataiMetaJobExecutionMapper 接口
```java
package com.datai.salesforce.metadata.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.datai.salesforce.metadata.entity.DataiMetaJobExecution;
import org.apache.ibatis.annotations.Mapper;
/**
* 元数据作业执行Mapper接口
*/
@Mapper
public interface DataiMetaJobExecutionMapper extends BaseMapper<DataiMetaJobExecution> {
}
```
#### 2.7 DataiMetaDeployHistoryMapper 接口
```java
package com.datai.salesforce.metadata.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.datai.salesforce.metadata.entity.DataiMetaDeployHistory;
import org.apache.ibatis.annotations.Mapper;
/**
* 元数据部署历史Mapper接口
*/
@Mapper
public interface DataiMetaDeployHistoryMapper extends BaseMapper<DataiMetaDeployHistory> {
}
```
#### 2.8 DataiMetaDeployComponentResultMapper 接口
```java
package com.datai.salesforce.metadata.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.datai.salesforce.metadata.entity.DataiMetaDeployComponentResult;
import org.apache.ibatis.annotations.Mapper;
/**
* 元数据部署组件结果Mapper接口
*/
@Mapper
public interface DataiMetaDeployComponentResultMapper extends BaseMapper<DataiMetaDeployComponentResult> {
}
```
#### 2.9 DataiMetaJobLogMapper 接口
```java
package com.datai.salesforce.metadata.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.datai.salesforce.metadata.entity.DataiMetaJobLog;
import org.apache.ibatis.annotations.Mapper;
/**
* 元数据作业日志Mapper接口
*/
@Mapper
public interface DataiMetaJobLogMapper extends BaseMapper<DataiMetaJobLog> {
}
```
### 3. Mapper XML文件创建
#### 3.1 DataiMetaOrgConfigMapper.xml
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.datai.salesforce.metadata.mapper.DataiMetaOrgConfigMapper">
<!-- DataiMetaOrgConfigMapper.xml - Salesforce组织配置Mapper映射文件 -->
</mapper>
```
#### 3.2 DataiMetaTaskMapper.xml
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.datai.salesforce.metadata.mapper.DataiMetaTaskMapper">
<!-- DataiMetaTaskMapper.xml - 元数据任务定义Mapper映射文件 -->
</mapper>
```
#### 3.3 DataiMetaPackageItemMapper.xml
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.datai.salesforce.metadata.mapper.DataiMetaPackageItemMapper">
<!-- DataiMetaPackageItemMapper.xml - 元数据包项Mapper映射文件 -->
</mapper>
```
#### 3.4 DataiMetaComponentMapper.xml
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.datai.salesforce.metadata.mapper.DataiMetaComponentMapper">
<!-- DataiMetaComponentMapper.xml - 元数据组件Mapper映射文件 -->
</mapper>
```
#### 3.5 DataiMetaComponentVersionMapper.xml
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.datai.salesforce.metadata.mapper.DataiMetaComponentVersionMapper">
<!-- DataiMetaComponentVersionMapper.xml - 元数据组件版本Mapper映射文件 -->
</mapper>
```
#### 3.6 DataiMetaJobExecutionMapper.xml
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.datai.salesforce.metadata.mapper.DataiMetaJobExecutionMapper">
<!-- DataiMetaJobExecutionMapper.xml - 元数据作业执行Mapper映射文件 -->
</mapper>
```
#### 3.7 DataiMetaDeployHistoryMapper.xml
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.datai.salesforce.metadata.mapper.DataiMetaDeployHistoryMapper">
<!-- DataiMetaDeployHistoryMapper.xml - 元数据部署历史Mapper映射文件 -->
</mapper>
```
#### 3.8 DataiMetaDeployComponentResultMapper.xml
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.datai.salesforce.metadata.mapper.DataiMetaDeployComponentResultMapper">
<!-- DataiMetaDeployComponentResultMapper.xml - 元数据部署组件结果Mapper映射文件 -->
</mapper>
```
#### 3.9 DataiMetaJobLogMapper.xml
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.datai.salesforce.metadata.mapper.DataiMetaJobLogMapper">
<!-- DataiMetaJobLogMapper.xml - 元数据作业日志Mapper映射文件 -->
</mapper>
```
## 使用记录
| 日期 | 使用场景 | 输入参数 | 输出结果 | 反馈 | 改进措施 |
|------|---------|---------|---------|------|----------|
| 2026-01-19 | 实现基础实体类和Mapper创建功能 | REQ-010-2需求文档0011-entity-mapper-create ADR文档 | 代码示例和实现指南 | 无 | 无 |