如何在JSF中验证自己字段的字段?

时间:2012-11-14 13:52:33

标签: java validation jsf java-ee-6 bean-validation

听起来很奇怪。但我需要验证公司人员实体的Adress。 公司是Person和Addres的公司所在地。

我想验证公司个人实体的地址。

为什么?因为如果我之前在Person实体中使用它,公司应该有一个地址吗?

如何实施此验证?

@Entity
@Table(schema = Constants.DB_SCHEMA)
public class Person{
   Company company;

  // Validation of the address should come here ???
    public Company getCompany() {
        return company;
    }
}

@Entity
@Table(schema = Constants.DB_SCHEMA)
public class Company{
   String address;
}

1 个答案:

答案 0 :(得分:0)

基本上,你可以使用公司类的地址属性上的注释@NotNull来做到这一点。

但是:您当前的代码无论如何都不会起作用,因为您没有指定类之间的关系而您没有主键....

以下是一个如何运作的示例:

@Entity
public class Person {

    @Id
    @GeneratedValue
    private Long id;

    @OneToOne(cascade= CascadeType.ALL)
    private Company company;

    public Company getCompany() {
        return company;
    }

    public void setCompany(Company company) {
        this.company = company;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }    
}

@Entity
public class Company {

    @Id
    @GeneratedValue
    private Long id;

    @NotNull
    private String adress;

    public String getAdress() {
        return adress;
    }

    public void setAdress(String adress) {
        this.adress = adress;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
}