我在将验证约束应用于类属性时遇到问题例如,我有类:
@Entity
public class user {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public int id;
@Required
public String name;
@ManyToOne(cascade = CascadeType.MERGE)
@Required
public Company company;
}
当我@Required应用于参数时:名称它有效。但是当我为参数添加注释@ManyToOne时:公司不再工作。当我删除@ManyToOne注释时,它会再次工作。请帮助我。
公司类别:
@Entity
public class Company {
@Id
@Constraints.Required
@GeneratedValue(strategy=GenerationType.IDENTITY)
public Long id;
@Constraints.Required
public String name;
@Constraints.Required
public String date;
}
由于您使用的是@ManyToOne
因此您可以获得数据库验证,以便公司字段不可为空。如果您使用
@ManyToOne(cascade = CascadeType.MERGE)
@JoinColumn(name="company", nullable=false, optional=false)
public Company company;
@Required
检查客户端验证。因此,您可以创建一个方法来处理验证。这是等价的。
public String validate() {
if(company == null) {
return "Company Field Cannot be Empty";
}
return null;
}