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) –