当前位置: 首页 > 知识库问答 >
问题:

如何修复被忽略的嵌入式对象中的验证约束?

马庆
2023-03-14

我在Spring Boot&Hibernate REST API中有我的实体对象。这个类有很多字段。其中一部分是嵌入式的,并且像@min@max这样的验证约束对@embeddable类中的字段不起作用。同样的验证规则在@Entity类中非常有效。我正在使用javax.validation.constraints.max

我的主要对象如下所示:

@Entity
public class Notice extends BaseEntity {

  @Embedded
  private MyEmbeddedClass myEmbeddedClass;

  @OneToOne(cascade = CascadeType.ALL)
  @JoinColumn(name = "entity_class_id")
  private MyEntityClass myEntityClass;

}   

和我的@Embedded类:

@Embeddable
public class MyEmbeddedClass {

  @Size(max = 50)
  private String label;

  @Max(100)
  private Integer percent;

}

@Entity
public class MyEntityClass extends BaseEntity {

  @Size(max = 50)
  private String name;

  @Max(6000)
  private Integer size;

有办法解决这个问题吗?我的Spring Boot版本是2.1.1,我可以手动创建数据库脚本,但我希望避免这种情况,并通过hibernate获得几乎完美的脚本

共有1个答案

勾通
2023-03-14

如果要验证@embeddable对象中定义的约束,则需要在嵌入的对象上添加@valid注释:

@Entity
public class Notice extends BaseEntity {

    @Embedded
    @Valid
    private MyEmbeddedClass myEmbeddedClass;

    ...
}
 类似资料:
  • (仅在测试中使用)我有依赖项(没有spring或DI容器) 我可以通过 myDto在哪里 哪里 哪里 在这个验证器中,所有的工作都很完美,但没有任何注释或在现场发挥作用,他们只是被忽略了 请帮忙。断然的 很抱歉,我的真实案例是相互嵌套的DTO,所以只有高级类经过验证,但没有嵌套。 而另一个有注释的字段未经验证。当我在字段中添加时,它开始正常工作

  • 问题内容: 我必须使用无效的SSL证书调用Web服务器上托管的HTTP服务。在开发人员中,我使用 keytool 导入证书,但是证书在每个客户端安装中都会有所不同,因此我不能将其捆绑在一起。 前言:我 不要 知道跳过SSL验证实在是太丑了。在这种特定情况下,我什至不需要SSL,并且系统中的所有其他通信都是通过简单HTTP进行的。所以我真的不在乎MITM攻击之类。攻击者无需破坏SSL,因为数据没有S

  • 如果某个接口不需要进行验证工作,可以在@Api注解上设置属性ignoreValidate=true(默认false)。这样调用接口时,不会进行验证操作。 同样的,在@ApiService注解里也有一个对应的ignoreValidate属性,设置为true的话,Service类下面所有的接口都忽略验证。 忽略所有接口验证 设置ApiConfig.setIgnoreValidate(true),所有接

  • 我们有一个带有JSR注释的简单bean 我们有一个Spring控制器 我们的问题是,当调用changePassword时,验证器忽略组(PasswordChange.Class)并只验证组中不存在的firstName和lastName。 知道吗?非常感谢你抽出时间。

  • 问题内容: 我正在使用数据对象作为ReactJS中组件的道具。 我知道容易验证PropTypes对象本身: 但是,如果我想验证其中的值怎么办?即。data.id,data.title? 问题答案: 您可以用来验证属性: 更新资料 正如@Chris在评论中指出的那样,从React 15.5.0版本开始已移至package 。 更多信息

  • 试图学习JSON模式,我有一个复杂的模式,都是基于相对URL的。当嵌套属性调用另一个文件中定义的definitions属性时,验证有时会被忽略。 我的目标是基本上在全局范围内创建可重用的定义和经常使用的枚举/常量/定义 假设项目树为: 在intellij中,结果如下:(显示的每个属性都不应该是有效的,但有些属性只是被忽略和允许(如负数和空值等)。我没有收到关于$ref无法解析的警告/错误。自动完成