【问题标题】:Hibernate validator for @Embeddable@Embeddable 的休眠验证器
【发布时间】:2015-12-28 18:36:24
【问题描述】:

我有一个具有嵌入属性的实体并使用 Hibernate 验证器来验证 Entity 。但不为嵌入的属性执行验证。

代码如下:sn-p。

@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);

【问题讨论】:

  • 您如何验证根实体Employee
  • 更新了代码sn-p
  • 我觉得一切正常,肯定有其他问题,secid 真的为空还是空白?
  • 这看起来不错,验证是如何触发的?您正在使用哪些其他框架以及 Hibernate Validator 的哪个版本?

标签: hibernate validation bean-validation hibernate-validator


【解决方案1】:

我也遇到了同样的问题,添加注释@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);

【讨论】:

    【解决方案2】:

    您忘记使用@Valid 注释地址字段。

    旁注:为什么要通过地址来识别员工?这没什么意义。

    【讨论】:

    • 感谢您的回复。我已经尝试过使用 @Valid 进行注释。但是,它不起作用,它只是一个更容易理解的例子。实际实体不同。
    • 然后贴出真实代码。不要通过向我们展示代码 B 来要求我们找到代码 A 中的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 2012-09-17
    • 2012-09-18
    • 1970-01-01
    相关资源
    最近更新 更多