我正在使用Constraint注释在Play中验证我的对象!框架2.它适用于顶级对象,但不适用于嵌套对象。如何使嵌套对象验证注释生效?
事件:我正在保存的顶级对象。
@Entity
public class Event {
@Required
public String name;
@OneToMany(cascade = CascadeType.ALL)
public List<Option> options;
...
}
选项:嵌套对象。它没有验证名称属性。
@Entity
public class Option {
@Required
public String name;
...
}
答案 0 :(得分:14)
不熟悉Play,但它看起来非常接近javax.validation,您需要在@Valid
字段上放置options
以告知验证者进入该关系。 Play有自己的@Valid,所以我会给它一个镜头。
更新:正如OP所指出的,上面是Play 1.0。相反,根据Play 2.0 docs,它使用了Spring数据绑定和JSR-303,那么如何使用javax.validation @Valid注释呢?也许Play 1.0有一个自制的验证框架,他们决定转向2.0中的javax.validation?这可以解释为什么几个验证注释似乎在2.0 API中消失了。