Spring data mongodb @Document定义Enum/List/Map数据结构
时间:2022-05-03
本文章向大家介绍Spring data mongodb @Document定义Enum/List/Map数据结构,主要内容包括7.2.2. @Document、7.2.2.2. 在 @Document 中定义数据结构 List/Map、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
本文节选自《Netkiller Java 手札》
7.2.2. @Document
复杂的 @Document 数据类型定义
package cn.netkiller.domain;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document
public class MultilevelDirectSellingTradingRebate {
public enum Type {
POINT, CASH, GIFT
}
public enum Rebate {
DIRECT, INDIRECT
}
public enum Status {
New, Rejected, Approved
}
@Id
private String id;
public String name;
public Date beginDate;
public Date endDate;
public double lowAmount;
public double highAmount;
public Type type;
public Status status = Status.New;
public List<Map<String, Map<?, ?>>> product;
@Override
public String toString() {
return "MultilevelDirectSellingTradingRebate [id=" + id + ", name=" + name + ", beginDate=" + beginDate
+ ", endDate=" + endDate + ", lowAmount=" + lowAmount + ", highAmount=" + highAmount + ", type=" + type
+ ", status=" + status + ", product=" + product + "]";
}
}
7.2.2.1. 在 @Document 中使用 Enum 类型
public enum Type {
POINT, CASH, GIFT
}
public enum Rebate {
DIRECT, INDIRECT
}
public enum Status {
New, Rejected, Approved
}
枚举类型的赋值方法
MultilevelDirectSellingTradingRebate multilevelDirectSellingTradingRebate = new MultilevelDirectSellingTradingRebate();
multilevelDirectSellingTradingRebate.name = "TEST";
multilevelDirectSellingTradingRebate.beginDate = new Date();
multilevelDirectSellingTradingRebate.endDate = new Date();
multilevelDirectSellingTradingRebate.lowAmount = 1.5d;
multilevelDirectSellingTradingRebate.highAmount = 100d;
multilevelDirectSellingTradingRebate.type = Type.CASH;
7.2.2.2. 在 @Document 中定义数据结构 List/Map
public List<Map<String, Map<?, ?>>> product;
下面是数据集结构的赋值例子
Map<Enum<Rebate>, Double> rebate = new HashMap<Enum<Rebate>, Double>();
rebate.put(Rebate.DIRECT, 10.05d);
rebate.put(Rebate.INDIRECT, 6.05d);
Map<String, Map<?, ?>> prod1 = new HashMap<String, Map<?, ?>>();
prod1.put("USDRMB", rebate);
List<Map<String, Map<?, ?>>> products = new ArrayList<Map<String, Map<?, ?>>>();
products.add(prod1);
multilevelDirectSellingTradingRebate.product = products;
- 简单易学的机器学习算法——Apriori算法
- 厚土Go学习笔记 | 29. 接口
- MySQL删除数据的简单尝试 (r7笔记第98天)
- 简单易学的机器学习算法——lasso
- 优化算法——差分进化算法(DE)
- 通过shell脚本批量验证dataguard的有效性(r7笔记第96天)
- JavaWeb17-案例之ajax(Java真正的全栈开发)
- JavaWeb15-DBUtils(Java真正的全栈开发)
- 利用Theano理解深度学习——Multilayer Perceptron
- JavaWeb14-事务,连接池(Java正在的全栈开发)
- 利用Theano理解深度学习——Logistic Regression
- JavaWeb13-设计模式案例实现(Java真正的全栈开发)
- 运维平台的建设思考-元数据管理(三)(r8笔记第15天)
- JavaWeb12-JSP, EL表达式,JSTL标签
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 移动端开发的几点建议
- 数据结构题集(严书)图 常见习题代码
- PAT (Basic Level) Practice (中文)1036 跟奥巴马一起编程 (15 分)
- PAT (Advanced Level) Practice 1024 Palindromic Number (25 分)
- Flink 连接 hive 解决 java.net.UnknownHostException
- PAT (Advanced Level) Practice 1147 Heaps (30 分)
- Java自动化测试(app自动化环境搭建 31)
- PAT (Basic Level) Practice (中文)1038 统计同成绩学生 (20 分)
- 数据结构题集(严书)串 常见习题代码
- PAT (Basic Level) Practice (中文)1040 有几个PAT (25 分)
- 201909-4ccf计算机职业资格认证考试 第四题 推荐系统
- 【Linux_Shell 脚本编程学习笔记四、监控系统内存并报警企业案例脚本】
- PAT (Basic Level) Practice (中文)1042 字符统计 (20 分)
- Pytorch 中的 5 个非常有用的张量操作
- k-近邻算法实现数字识别