使用Bean验证验证空集

时间:2015-12-10 09:35:31

标签: java-ee set bean-validation is-empty

我尝试对实体中的Set属性进行bean验证:

@NotEmpty
@Valid
private Set<E_CMS_CONDITION_ITEM> items;

我想在Set为空时给我一个错误,现在没有给我一个错误。这可以通过bean验证吗?如果是这样的话?

更新 对于哈代: 我正在使用primefaces 5.2版本,这是我的xhtml代码:

<p:dataList id="conditionItemList" value="#{eventsController.model.currentCondition.items}" var="event" type="ordered" rowIndexVar="rowInd" label="#{msg['table.conditions.caption']}">
    .
    .
    .
</p:dataList>
<h:message for="conditionItemList" style="color:red" />

相同的xhtml上的bean验证工作正常,但事实并非如此。没有写任何错误,我也尝试使用@NotNull,但同样。

1 个答案:

答案 0 :(得分:0)

您可以使用Hibernate Validator。它是Bean Validation 1.1 JSR-349

的参考实现

您可以验证包含items的实体。

  ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
  Validator validator = factory.getValidator();
  Set<ConstraintViolation<Foo>> constraintViolations =
      validator.validate( entity );

它将返回实体的验证,包括items

生成的违规