2014-01-16 60 views
0

我有应用验证约束类属性 例如问题我有类:申请JPA实体@Required约束与@ManyToOne批注PLAY框架

 @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 parametr:命名作品。 但是,当我添加adnotation @ManyToOne参数:公司它dosnt不再工作。 当我删除@ManyToOne adnotation时,它会再次运行。 请帮帮我。

@Entity 
public class Company { 
    @Id 
    @Constraints.Required 
    @GeneratedValue(strategy=GenerationType.IDENTITY) 
    public Long id; 

    @Constraints.Required 
    public String name; 

    @Constraints.Required 
    public String date; 

} 

回答

0

由于您使用@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; 
} 
+0

因此,如果我使用'@ManyToOne'关系,我必须进行自定义临时验证?我已将'@Required'添加到类公司的参数ID中。现在我可以看到约束:必需的。现在,当输入为空时,我需要将其设为红色。临时验证应该在该类的模型中? – masterdany88

+0

发现类似问题:http://stackoverflow.com/questions/19741421/ad-hoc-validation-is-not-executed – masterdany88