TomahawkPhant
TomahawkPhant

Reputation: 1160

Validation Not Working on Nested Objects in Play Framework 2

I'm using the Constraint annotations for validating my objects in Play! framework 2. It works fine for top level objects, but not nested ones. How do I get my nested object validation annotations to work?

Event: The top level object I am saving.

@Entity
public class Event {

    @Required
    public String name;

    @OneToMany(cascade = CascadeType.ALL)
    public List<Option> options;

    ...
}

Option: The nested object. Its not validating the name property.

@Entity
public class Option {

    @Required
    public String name;

    ...
}

Upvotes: 7

Views: 3276

Answers (1)

Ryan Stewart
Ryan Stewart

Reputation: 128849

Not familiar with Play, but it looks very close to javax.validation, in which you'd need to put @Valid on your options field to tell the validator to descend into that relationship. Play has an @Valid of its own, so I'd give that a shot.

Update: As OP pointed out, the above is Play 1.0. Instead, per the Play 2.0 docs, it uses Spring data binding and JSR-303 under the hood, so how about using the javax.validation @Valid annotation on it? Maybe Play 1.0 had a home-made validation framework and they decided to move to javax.validation in 2.0? That would explain why several validation annotations seem to have disappeared in the 2.0 API.

Upvotes: 15

Related Questions