我在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;
}
@%字段上的最大限制被忽略,但是@size运行正常
@Entity
public class MyEntityClass extends BaseEntity {
@Size(max = 50)
private String name;
@Max(6000)
private Integer size;
}
在此处创建了对字段大小的@Max约束和@size约束
是否可以解决此问题?我的Spring引导版本是2.1.1,我可以手动创建数据库脚本,但是我想避免这种情况,并且由于休眠而获得了几乎完美的脚本
答案 0 :(得分:1)
如果要验证@Valid
对象中定义的约束,则需要在嵌入式对象上添加@Embeddable
批注:
@Entity
public class Notice extends BaseEntity {
@Embedded
@Valid
private MyEmbeddedClass myEmbeddedClass;
...
}