Spring 数据 mongoDb 不是像 Spring 数据 Jpa 这样的空注释
Spring data mongoDb not null annotation like Spring data Jpa
像spring-data-jpa 有@NotNull 注释在spring-data-mongodb 中有什么用?
javax.validation.constraints.NotNull
本身可以与 spring-data-mongodb 一起使用。为此,您需要具备以下条件。
JSR-303 依赖项已添加到您的 pom.xml
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.3.4.Final</version>
</dependency>
声明适当的验证器和验证器事件侦听器
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.core.mapping.event.ValidatingMongoEventListener;
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
@Configuration
public class Configuration {
@Bean
public ValidatingMongoEventListener validatingMongoEventListener() {
return new ValidatingMongoEventListener(validator());
}
@Bean
public LocalValidatorFactoryBean validator() {
return new LocalValidatorFactoryBean();
}
}
在您的 MongoDB POJO 中添加 @NotNull 注释
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import javax.validation.constraints.NotNull;
@Document(collection = "user_account")
public class User {
@Id
private String userId;
@NotNull(message = "User's first name must not be null")
private String firstName;
@NotNull(message = "User's last name must not be null")
private String lastName;
}
使用此配置和实现,如果您将 User 对象持久化为空值,那么您将看到 javax.validation.ConstraintViolationException
失败
记住:如果使用 @SpringBootApplication
,请确保 Spring 可以扫描您的配置文件。否则,您可以使用 @ComponentScan("com.mypackage")
.
像spring-data-jpa 有@NotNull 注释在spring-data-mongodb 中有什么用?
javax.validation.constraints.NotNull
本身可以与 spring-data-mongodb 一起使用。为此,您需要具备以下条件。
JSR-303 依赖项已添加到您的 pom.xml
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.3.4.Final</version>
</dependency>
声明适当的验证器和验证器事件侦听器
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.core.mapping.event.ValidatingMongoEventListener;
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
@Configuration
public class Configuration {
@Bean
public ValidatingMongoEventListener validatingMongoEventListener() {
return new ValidatingMongoEventListener(validator());
}
@Bean
public LocalValidatorFactoryBean validator() {
return new LocalValidatorFactoryBean();
}
}
在您的 MongoDB POJO 中添加 @NotNull 注释
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import javax.validation.constraints.NotNull;
@Document(collection = "user_account")
public class User {
@Id
private String userId;
@NotNull(message = "User's first name must not be null")
private String firstName;
@NotNull(message = "User's last name must not be null")
private String lastName;
}
使用此配置和实现,如果您将 User 对象持久化为空值,那么您将看到 javax.validation.ConstraintViolationException
记住:如果使用 @SpringBootApplication
,请确保 Spring 可以扫描您的配置文件。否则,您可以使用 @ComponentScan("com.mypackage")
.