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