【问题标题】:does @NotBlank and/or @NotEmpty map to not null in database like @NotNull does in Spring JPA?@NotBlank 和/或 @NotEmpty 是否像 @NotNull 在 Spring JPA 中那样映射到数据库中的非空值?
【发布时间】:2021-03-06 11:15:24
【问题描述】:

首先我正在使用

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

这是在 Spring Boot 应用程序中用于验证的推荐方法吗?

意思是,这是否添加了javax-apihibernate-validator 以及验证所需的依赖项?

其次,我的主要问题是,@NotBlank@NotEmpty@NotNull 中的所有三个都映射到 NOT NULL 约束吗?

如果不是,应该使用什么来验证@NotBlank(修剪并确保长度大于0)和列上的NOT NULL 约束?

应该像下面这样吗?所以在这种情况下,我不能省略列注释。

@NotBlank
@Column(nullable = false)
private String property;

还是应该像下面这样,我使用@Size@NotNull

@NotNull
@Size(min = 1)
private String property;

【问题讨论】:

    标签: spring postgresql spring-boot jpa spring-data-jpa


    【解决方案1】:

    Javax.validations 既可以应用于实体,也可以应用于 DTO。对于实体,我们可以同时使用 @NotNull 和 @NonEmpty 作为私有 String 属性; 它不会在数据库中添加任何约束,因为这些约束将在持久性级别进行处理。 错误消息类似于:无法提交 JPA 事务;嵌套异常是 javax.persistence.RollbackException: Error while committing the transaction

    【讨论】:

    • 谢谢,所以使用“@NotNull”来获得“NOT NULL”约束和“@NotBlank”来确保它有一个值(不仅仅是像“@NotEmpty”那样带有空格的空字符串) ?,这比使用“@NotNull”和“@Column(nullable = false)”更好吗?
    • 是的,如果db操作是通过java代码完成的,它比@NotNull和@Column(nullable = false)更好
    猜你喜欢
    • 2011-11-24
    • 2013-06-12
    • 2021-03-26
    • 2018-03-30
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    相关资源
    最近更新 更多