区间字段类型(Range)
区间类型用来表达一个数据范围, 比如 出发日期和回程日期
, 或者是 最小金额和最大金额
.
所有的区间类型在后端都是使用同一个类型包装 Range<T>
, 并且提供了 getStart
和 getEnd
方法.
我们通过泛型包装相关的内容类型即可, 上述的 出发日期和回程日期
, 就可以用 Range<Date>
来表达.
而 最小金额和最大金额
则可以使用 Range<BigDecimal>
, 亦或是 Range<Double>
来接收数据.
以下是目前支持的一些区间类型, 可以直接使用.
关于 支持类型
和 默认推断类型
下文的 支持类型
, 是值其可支持的类型范围, 而 默认推断类型
是指为特殊声明类型的情况下, 这些 Java 类型会被推断为当前类型.
以 日期时间 为例, 其 支持类型
为 java.util.Date
, java.time.LocalDateTime
, 而 默认推断类型
为: java.time.LocalDateTime
.
即如果不通过 @Field(type=?)
的方式声明的情况下, 字段类型为 java.time.LocalDateTime
会自动推断为 DateTime
.
但如果字段类型为 java.util.Date
, 且为未声明 @Field(type=?)
的情况下, 则会自动推断为 Date
, 因为 日期 类型的默认推断类型中包含了 java.util.Date
.
数字区间(DIGIT_RANGE)
- 字段类型:
DIGIT_RANGE
- 支持类型:
Range<? extends java.lang.Number>
- 默认推断类型:
Range<? extends java.lang.Number>
数字的区间类型, 即有数字的最小值和最大值, 后端可以用 Range<? extends java.lang.Number> 类型来接, 数据格式具体参考 字段类型: 数字.
日期区间(DATE_RANGE)
- 字段类型:
DATE_RANGE
- 支持类型:
Range<java.util.Date>
,Range<java.time.LocalDate>
- 默认推断类型:
Range<java.util.Date>
,Range<java.time.LocalDate>
日期类型的区间选择器, 仅通过 Range
类型进行包装, 数据格式具体参考 字段类型: 日期
日期时间区间(DATE_TIME_RANGE)
- 字段类型:
DATE_TIME
- 支持类型:
Range<java.util.Date>
,Range<java.time.LocalDateTime>
- 默认推断类型:
Range<java.time.LocalDateTime>
日期时间类型的区间选择器, 仅通过 Range
类型进行包装, 数据格式具体参考 字段类型: 日期时间
时间区间(TIME_RANGE)
- 字段类型:
TIME
- 支持类型:
Range<java.time.LocalTime>
,Range<java.lang.String>
- 默认推断类型:
Range<java.time.LocalTime>
时间类型的区间选择器, 仅通过 Range
类型进行包装, 数据格式具体参考 字段类型: 时间
周区间(DATE_WEEK_RANGE)
- 字段类型:
DATE_WEEK_RANGE
- 支持类型:
Range<java.lang.String>
- 默认推断类型: 无, 需要声明
@Field(type=ValueType.DATE_WEEK_RANGE)
日期类型的周区间选择器, 以周为单位的区间选择, 仅通过 Range
类型进行包装, 数据格式具体参考 字段类型: 时间-周
月区间(DATE_MONTH_RANGE)
- 字段类型:
DATE_MONTH_RANGE
- 支持 Java 类型:
Range<java.lang.String>
- 默认推断类型: 无, 需要声明
@Field(type=ValueType.DATE_MONTH_RANGE)
日期类型的月区间选择器, 以月为单位的区间选择, 仅通过 Range
类型进行包装, 数据格式具体参考 字段类型: 时间-月
季度区间(DATE_QUARTER_RANGE)
- 字段类型:
DATE_QUARTER_RANGE
- 支持 Java 类型:
Range<java.lang.String>
- 默认推断类型: 无, 需要声明
@Field(type=ValueType.DATE_QUARTER_RANGE)
日期类型的季度区间选择器, 以季度为单位的区间选择, 仅通过 Range
类型进行包装, 数据格式具体参考 字段类型: 时间-季度
年度区间(DATE_YEAR_RANGE)
- 字段类型:
DATE_YEAR_RANGE
- 支持 Java 类型:
Range<java.lang.String>
- 默认推断类型: 无, 需要声明
@Field(type=ValueType.DATE_YEAR_RANGE)
日期类型的年度区间选择器, 以年为单位的区间选择, 仅通过 Range
类型进行包装, 数据格式具体参考 字段类型: 时间-年度