Easy-Es Easy-Es
💋首页
  • v3.0.0(当前版本)
  • What's New

    • What' s New In Easy-Es v3.0.0?
  • 历史版本

    • v1.x.x
    • v2.x.x
  • 升级指南

    • 升级到3.x.x说明
💖赞助
  • 开源社区
  • 周边好物
  • 项目PPT (opens new window)
  • 项目介绍
  • 项目成员
  • 参与贡献
加入社区讨论
谁在使用
  • Doc-Apis (opens new window)
  • 健身计划一键生成系统 (opens new window)
  • 极氪汽车
  • Vuepress-theme-vdoing (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • Github (opens new window)
  • 简体中文 (opens new window)
  • English (opens new window)

广告采用随机轮播方式显示 ❤️成为赞助商
💋首页
  • v3.0.0(当前版本)
  • What's New

    • What' s New In Easy-Es v3.0.0?
  • 历史版本

    • v1.x.x
    • v2.x.x
  • 升级指南

    • 升级到3.x.x说明
💖赞助
  • 开源社区
  • 周边好物
  • 项目PPT (opens new window)
  • 项目介绍
  • 项目成员
  • 参与贡献
加入社区讨论
谁在使用
  • Doc-Apis (opens new window)
  • 健身计划一键生成系统 (opens new window)
  • 极氪汽车
  • Vuepress-theme-vdoing (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • Github (opens new window)
  • 简体中文 (opens new window)
  • English (opens new window)
  • 快速入门

    • 简介
    • 适用场景
    • 顾虑粉碎
    • 避坑指南
    • 快速开始
    • springboot集成demo
    • spring集成指南
    • solon集成指南
    • 配置
    • 注解
  • 核心功能

    • 条件构造器

      • 条件构造器介绍
      • 索引条件构造器
      • 查询条件构造器
      • 更新条件构造器
    • 索引CRUD

      • 索引托管模式
      • 索引CRUD
    • 数据CRUD

      • 数据同步方案
      • 数据CRUD
    • 多数据源支持
    • 动态索引支持
    • 四大嵌套查询
    • 链式调用
  • 拓展功能

    • 混合查询
    • 原生查询
    • 分页查询
    • 嵌套类型
    • Join父子类型
    • 获取DSL语句
    • 执行DSL语句
    • 执行SQL语句
    • 自定义RequestOptions
    • 自定义default方法
  • 高阶语法

    • 查询字段过滤
    • 排序
    • 聚合查询
    • 分词&模糊匹配
    • 权重
    • 高亮查询
    • GEO地理位置查询
    • IP查询
  • 插件

    • 插件
    • 拦截器插件
    • 领域模型生成插件
      • 简介
      • 使用步骤
      • 代码示例
  • 其它

    • 问答
    • 与MP差异
    • MySQL和EE语法对比
    • 更新日志
    • 更新计划
    • 版权
    • 鸣谢
  • v3.x文档
  • 插件
老汉
2024-09-15
目录

领域模型生成插件

# 简介

领域模型生成插件,如果有使用过Mybatis-Plus根据数据库生成实体类插件,便不难理解,前者是根据数据库表结构生成领域模型,本插件是根据索引结构生成领域模型,是根据实体类生成索引结构的逆向工程.

# 使用步骤

  1. 配置 indexName: 需要被生成领域模型的索引名称 destPackage: 生成模型的目标包路径 enableUnderlineToCamelCase: 是否开启下划线转驼峰 默认开启 enableLombok: 是否开启lombok

  2. 注入插件

框架已将自动生成器注册为Bean通过Spring进行管理,可直接通过Spring提供的@Autowired注解或@Resource注入插件

  1. 调用生成

通过注入的bean直接调用generate方法即可完成生成,生成后可至配置的destPackage目录下查看生成的领域模型

  1. 微调

由于索引结构与实体类的映射关系不是完全一一对应的,例如索引中的嵌套类型在JAVA中可能是List<?>,也可能是Set<?>,类似这种情况实际上通过技术手段无法完全规避, 所以生成的实体类并不一定100%符合预期,需要使用者对其进行微调,但无论如何,这都比用户从0开始手动处理要快得多,这也是本插件存在的意义和价值,另外针对包的引入 也需要用户自行决定引入,本插件并未进行自动生成和干预.

# 代码示例

@SpringBootTest(classes = TestEasyEsApplication.class)
public class GeneratorTest {
    @Resource
    private Generator generator;

    /**
     * 测试根据已有索引生成领域模型
     */
    @Test
    public void testGenerate() {
        IndexName indexName = Document.class.getAnnotation(IndexName.class);
        GeneratorConfig config = new GeneratorConfig();
        // 将生成的领域模型放置在当前项目的指的包路径下
        String destPackage = "org.dromara.easyes.test.generated";
        config.setDestPackage(destPackage);
        config.setIndexName(indexName.value());
        Boolean success = generator.generate(config);
        Assertions.assertTrue(success,"generate failed!");
    }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
帮助我们改善此文档 (opens new window)
上次更新: 2025/05/11
拦截器插件
问答

← 拦截器插件 问答→

Theme by Vdoing | Copyright © 2021-2025 老汉 | 浙ICP备2022020479号 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式