【发布时间】:2018-11-30 07:38:52
【问题描述】:
我有一个 REST API,它使用 POST 调用来创建记录,我希望在调用后传递某些对象,如果缺少任何东西,我必须立即拒绝它们,
@RequestMapping(value="/saveEssentialDetails",produces={"application/json"},method=RequestMethod.POST)
ResponseEntity<?> saveEssentialDetails(@ApiParam(value="Body Parameters")@RequestBody @Validated EssentialDetails essentialDetails, BindingResult bindingResult)throws Exception;
基本模型类如下
@Data
@NoArgsConstructor
@Document(collection="essentialDetails")
public class EssentialDetails {
@NotNull
Integer dpId;
@Id
@NotEmpty
String tpId;
@NotEmpty
List<FamousFor> famousFor;
@NotEmpty
List<OpenHours> openHours;
@NotEmpty
Pictures uploadedImages;
@NotEmpty
List<FloorDescription> floorDescriptions;
@NotEmpty
List<Outlets> mallOutlets;
}
但是,在使用 Missing 属性进行 Post Call 时,我可以在 MongoDB 中创建一个条目,我不想保留它,因为它不是一个正确的请求,@Validation 对我不起作用,我正在使用Spring Boot 2.0.6 和 MongoDb 4.0.4, 任何帮助将不胜感激。提前谢谢
【问题讨论】:
-
你在类路径上真的有 JSR303 实现(比如 hibernate-validator)吗? spring.io/guides/gs/validating-form-input
-
@AlanHay 我添加了hibernate 5.4.2的依赖
-
我问的是 hibernate-validator 不是休眠。您需要将您的 maven 或 gradle 配置添加到您的问题中。
-
@AlanHay 非常了解 Hibernate 验证器的含义,并且我添加了
作为maven依赖org.hibernate hibernate-validator 5.4.2.Final
标签: spring mongodb spring-boot spring-data