1
我正在使用Jersey启动器和MongoDB启动器包使用spring启动编写休息服务。所以,我有验证通过创建豆上顶层文件的工作:在Spring Boot中验证Mongo文档
@Configuration
public class MongoValidationBeans {
@Bean
public ValidatingMongoEventListener validatingMongoEventListener() {
return new ValidatingMongoEventListener(validator());
}
@Bean
public LocalValidatorFactoryBean validator() {
return new LocalValidatorFactoryBean();
}
}
我有一个文件:
@Document
public class SomeDocument {
@NotEmpty(message="error message that shows on console")
private Set<NonDocumentObject> referencesToOtherDocuments;
}
设置嵌入的对象:
public class NonDocumentObject {
@NotNull(message="can't see this error message")
private ObjectId referenceId;
@NotBlank
private String referenceInfo;
}
验证豆尊重我的对象集上的@NotEmpty注释,但他们不尊重NonDocumentObject上的字段上的@NotNull或@NotBlank注释。我如何获得验证来处理嵌入式对象集的字段。
编辑:@有限修复上述问题。另外,当我的顶级文档发生约束违规时,我可以在控制台上看到特定的消息,但是tomcat返回一个响应状态为400的http错误页面。我怎样才能发送一个json对象来提供更多关于错误?我有一个类
public class GenericExceptionMapper implements ExceptionMapper<Throwable> {}
其捕获404,405等的异常并返回相应信息的JSON对象,但不赶蒙戈约束验证。我想我需要从mongo验证bean中抛出异常,但找不到指示我如何执行的资源。
我也希望能够通过自己的验证将其他对象嵌入到NonDocumentObject中。可能吗?
在Mongo 3.2中会有验证。可能会有助于[看一看](http://stackoverflow.com/a/33602507/1090562) –