I can't get my mind to wrap around a problem I have with a requirement concerning JSR303 bean validation (I'm currently using Hibernate Validator).
Assuming I have the following domain model
class Foo {
private Set<Bar> bars = new HashSet<>();
@Valid
public Set<Bar> getBars() { ... }
}
class Bar {
private String name;
@NotBlank
public String getName() { ... }
}
Say I have a foo
instance with two bar
s with one of the two names being empty. After validating foo
I'm holding a @NotBlank
constraint violation with a property path bars[].name
in my hand. Which is all well, but...
is there any way I can find out which of the two bars had its name empty? Or am I forced to use a List
here and introspect the - then unique - property path using reflection?
The latest release of Hibernate Validator, 5.2.0.CR1, provides a solution for this. You can unwrap property path nodes and get the property value. That way you know which
Bar
instance is affected: