public abstract class Parent{
@NotNull
private String appId;
}
@Documnet
public class child1 extends Parent{
@Id
private String id;
...more fields
...getters setters
}
@Documnet
public class child2 extends Parent{
@Id
private String id;
...more fields
...getters setters
}
我想确保每次在mongodb appId字段中保留Child1或Child2时都具有一个有效值,否则我希望我的代码抛出一些异常或错误。
我不想每次都对appId具有值进行显式检查。这应该是一次性的事情,您只需配置一次即可,并且在扩展父类的每个类中都会体现出来
我正在使用spring-boot和mongodb作为数据库。
ependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'io.springfox:springfox-swagger2:2.9.2'
implementation 'io.springfox:springfox-swagger-ui:2.0.1'
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-security', version: '2.2.6.RELEASE'
compile('org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.0.6.RELEASE')
compile('org.glassfish.jaxb:jaxb-runtime:2.3.1')
compileOnly "org.projectlombok:lombok:${lombokVersion}"
annotationProcessor "org.projectlombok:lombok:${lombokVersion}"
}
这里我如何解决此问题,不确定这是否是具体解决方案
public abstract class Parent {
@NotNull
private String appId;
}
@Document
public class Child extends Parent{
@Id
private String id;
}
为ValidatingMongoEventListener]和LocalValidatorFactoryBean创建豆
类但没有appId的Child类,它将抛出ConstraintViolationException@Configuration public class SomeClass { @Bean public ValidatingMongoEventListener createValidatingMongoEventListenerBean(LocalValidatorFactoryBean localValidatorFactoryBean){ return new ValidatingMongoEventListener(localValidatorFactoryBean); } @Bean public LocalValidatorFactoryBean createLocalValidatorFactoryBean(){ return new LocalValidatorFactoryBean(); } }
现在,如果我们尝试保留扩展了[[Parent