是否可以使用 Hibernate 验证注释对 DTO 类和实体进行注释?

Posted

技术标签:

【中文标题】是否可以使用 Hibernate 验证注释对 DTO 类和实体进行注释?【英文标题】:Is it ok to annotate with Hibernate validation annotations both DTO classes and Entities? 【发布时间】:2021-08-03 13:30:31 【问题描述】:

为了减少出现错误的机会。还是我应该只注释 DTO? 例如,

    public class UserDto 
        @NotNull
        @NotEmpty
        private String firstName;
        
        @NotNull
        @NotEmpty
            private String lastName;
    

public class User extends AbstractBaseEntity 
        @NotNull
        @NotEmpty
    private String username;
    @NotNull
    @NotEmpty
    @Email
    private String email;

附:为简洁起见,省略了大部分代码

【问题讨论】:

这能回答你的问题吗? Spring Rest API validation should be in DTO or in entity? 【参考方案1】:

是的,在两者上都进行验证是完全可以的。

详细说明:Spring Rest API validation should be in DTO or in entity?

【讨论】:

以上是关于是否可以使用 Hibernate 验证注释对 DTO 类和实体进行注释?的主要内容,如果未能解决你的问题,请参考以下文章

如何对多个资源包使用 Java Hibernate 验证?

Spring Security 3 身份验证与 Hibernate 3(JPA) 注释的集成

使用 Hibernate Validator (JSR 303) 进行跨字段验证

Hibernate 注释或 XML 配置

Spring Boot + JPA + Thymeleaf + Hibernate应用了多个验证注释

Hibernate DLL 验证自定义 @ForeignKey 注释似乎失败了?