我有一个具有嵌入式属性的实体,并使用Hibernate验证器来验证该实体。但不会对嵌入属性执行验证。
下面的代码片段。
@Entity
@Table(name = "FV_TBL_SOI_IGLS")
public class IGLSDataBean implements Serializable {
/**
*
*/
private static final long serialVersionUID = -7274784548705371043L;
public IGLSDataBean() {
}
/*
* @Column(name="FUND_CODE") private String fundCode;
*/
@Size(min = 0, max = 120)
@Column(name = "FUND_NAME")
private String fundName;
@Size(min = 0, max = 255)
@Column(name = "SECURITY_NAME")
@Valid
@EmbeddedId
private SOIPK id;
@Embeddable
public class SOIPK implements Serializable {
@NotNull
@Column(name = "SEC_ID")
private String secid;
Set<ConstraintViolation<IGLSDataBean>> constraintViolations = validator
.validate(iglsDataBean);发布于 2019-07-05 06:42:30
我也遇到了同样的问题,仅添加注释@Valid是不够的,还需要添加一些需要检查的内容,比如@NotNull
@Entity
@Table(name = "FV_TBL_SOI_IGLS")
public class IGLSDataBean implements Serializable {
/**
*
*/
private static final long serialVersionUID = -7274784548705371043L;
public IGLSDataBean() {
}
/*
* @Column(name="FUND_CODE") private String fundCode;
*/
@Size(min = 0, max = 120)
@Column(name = "FUND_NAME")
private String fundName;
@Size(min = 0, max = 255)
@Column(name = "SECURITY_NAME")
@Valid
@EmbeddedId
@NotNull
private SOIPK id;
@Embeddable
public class SOIPK implements Serializable {
@NotNull
@Column(name = "SEC_ID")
private String secid;
Set<ConstraintViolation<IGLSDataBean>> constraintViolations = validator
.validate(iglsDataBean);发布于 2015-12-29 02:39:06
您忘记了使用@Valid注释address字段。
附注:为什么你要通过员工的地址来识别他?这没有什么意义。
https://stackoverflow.com/questions/34498854
复制相似问题