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

1127 lines
26 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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文档 | 代码示例和实现指南 | 无 | 无 |