Sha*_*iby 5 java hibernate jpa bean-validation
我在 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;
}
Run Code Online (Sandbox Code Playgroud)
还有我的@embedded 课程:
@Embeddable
public class MyEmbeddedClass {
@Size(max = 50)
private String label;
@Max(100)
private Integer percent;
Run Code Online (Sandbox Code Playgroud)
}
百分比字段上的@Max 约束被忽略,但@size 工作正常
@Entity
public class MyEntityClass extends BaseEntity {
@Size(max = 50)
private String name;
@Max(6000)
private Integer size;
Run Code Online (Sandbox Code Playgroud)
}
在这里创建了对字段大小的 @Max 约束和 @size 约束
有没有办法来解决这个问题?我的 Spring boot 版本是 2.1.1,我可以手动创建我的数据库脚本,但我想避免这种情况,并且由于 hibernate 获得几乎完美的脚本
小智 6
@Valid如果要验证@Embeddable对象中定义的约束,则需要在嵌入对象上添加注释:
@Entity
public class Notice extends BaseEntity {
@Embedded
@Valid
private MyEmbeddedClass myEmbeddedClass;
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1022 次 |
| 最近记录: |