【发布时间】:2016-09-26 21:02:10
【问题描述】:
我正在尝试在 Spring 上使用以下结构设置 Range Query 结构:
public class QueryRange extends Query {
@JsonProperty(required = true)
@NotBlank
@NotNull
private String field;
private Object gt;
private Object gte;
private Object lt;
private Object lte;
public String getField() {
return field;
}
public QueryRange setField(String field) {
this.field = field;
return this;
}
public Object getGt() {
return gt;
}
public QueryRange setGt(Object gt) {
this.gt = gt;
return this;
}
public Object getGte() {
return gte;
}
public QueryRange setGte(Object gte) {
this.gte = gte;
return this;
}
public Object getLt() {
return lt;
}
public QueryRange setLt(Object lt) {
this.lt = lt;
return this;
}
public Object getLte() {
return lte;
}
public QueryRange setLte(Object lte) {
this.lte = lte;
return this;
}
@AssertTrue(message = "Invalid range. A value for 'gt' or 'lt' should be set.")
private boolean isRangeSpecified() {
return this.gt != null || this.lt != null;
}
@AssertTrue(message = "Invalid range data type. 'gt' and 'lt' must be of the same type.")
private boolean isRangeDataTypeValid() {
if (this.gt != null && this.lt != null) {
return this.gt.getClass().equals(this.lt.getClass());
}
return true;
}
}
问题是 gt、gte、lt 或 lte 值中的至少一个不应为空。如何验证?
我在上面的代码示例中尝试过 Bean Validation,但它不起作用。有什么建议吗?
【问题讨论】:
标签: java spring jackson json-deserialization