🚀 Elasticsearch Mapping 一键生成 Java 实体类(支持嵌套 + 自动过滤注释)
📌 前言
在 Java 项目中使用 Elasticsearch 时,一个绕不开的问题就是:
👉 如何根据 Mapping 快速生成 Java 实体类?
很多人还在:
- 手写 POJO
- 对照 Mapping 一个字段一个字段写
- 处理嵌套结构(非常痛苦)
如果 Mapping 稍微复杂一点:
💥 直接写到怀疑人生
😩 常见开发痛点
来看一个真实场景:
json
{
// 订单信息
"properties": {
"order": {
"properties": {
"id": { "type": "keyword" },
"amount": { "type": "double" },
"items": {
"type": "nested",
"properties": {
"name": { "type": "text" },
"price": { "type": "double" }
}
}
}
}
}
}
你需要手写:
java
public class Item {
private String name;
private Double price;
}
public class Order {
private String id;
private Double amount;
private List<Item> items;
}
public class Document {
private Order order;
}
问题是:
- ❌ 嵌套层级一多就容易写错
- ❌ 类型映射容易出问题
- ❌ JSON 里还有注释,解析直接失败
🛠 解决方案
我在 gotool.top 上实现了一个工具:
👉 ES Mapping → Java 实体类 自动生成
并且支持:
🔥 自动过滤 JSON 注释 + 嵌套结构解析
⚡ 核心能力
✅ 1. 自动生成 Java POJO
- 自动生成 class
- 自动生成字段
- 支持嵌套类
✅ 2. 支持 nested / object
| ES 类型 | Java 类型 |
|---|---|
| object | 自定义类 |
| nested | List<对象> |
✅ 3. 自动类型映射
| ES 类型 | Java 类型 |
|---|---|
| keyword / text | String |
| integer | Integer |
| long | Long |
| double | Double |
| float | Float |
| boolean | Boolean |
| date | Date / LocalDateTime |
✅ 4. 自动过滤 JSON 注释(重点)
支持:
json
{
// 单行注释
"field": "value"
}
以及:
json
/* 多行注释 */
{
"field": "value"
}
👉 直接粘贴即可,无需手动删除!
🔥 一键生成效果
输入 mapping(带注释也可以)👇
json
{
"properties": {
"user": {
"properties": {
"name": { "type": "keyword" },
"age": { "type": "integer" }
}
}
}
}
输出 Java 实体类 👇
java
public class User {
private String name;
private Integer age;
}
public class Document {
private User user;
}
💡 使用场景
这个工具非常适合:
- Spring Boot + Elasticsearch 项目
- 日志系统(ELK)
- 搜索服务开发
- 数据同步 / 数据中台
🚀 为什么推荐使用?
❌ 手写方式
- 慢(10分钟起步)
- 易错(字段多必炸)
- 嵌套结构复杂
✅ 工具方式
- 秒级生成 ⚡
- 结构清晰 🧠
- 零错误 💯
- 支持复杂 mapping 🔥
🌐 在线使用
搜索:ES Mapping 转 Java 实体类
🏁 总结
一句话总结这个工具:
👉 从 Mapping 到 Java 实体类,全自动生成(连注释都不用删)