首页 > 解决方案 > Spring Boot - 验证相关实体的一对多关系

问题描述

假设我有一个 User 实体并且它与 Post 有一对多的关系

@OneToMany(
        cascade = CascadeType.ALL,
        orphanRemoval = true,
        fetch = FetchType.LAZY
)
@JoinColumn(
        name = "user_id",
        foreignKey = @ForeignKey(name = "fk"),
        referencedColumnName = "userId")
private List<Post> post = new ArrayList<>();

这是我的Post实体

@NotBlank(message = "test")
@Column(length = 50)
private String title;

@Column
private String post;

插入新用户时如何验证帖子?例如这是我在请求中传递的

{
        "name": "Test name",
        "username": "Test username",
        "post": [
            {
                "title": "asdasd",
                "post": "asdasd"
            }
        ]
}

如果我在标题上传递一个空白字符串

"title": "",

我收到一个错误

Validation failed for classes .... during persist time for groups

标签: javaspring-bootspring-data-jpa

解决方案


您需要为模型的成员添加@Valid注释。看到这个答案:https ://stackoverflow.com/a/5142960/12431728postUser


推荐阅读