2012-12-21 15 views
7

Mam podmiot osoba z właściwości zbierania e-mail:Jak wymusić ograniczenie sprawdzania poprawności na własności jednostki Embeddable?

@ElementCollection 
@CollectionTable(schema="u",name="emails",[email protected](name="person_fk")) 
@AttributeOverrides({ 
    @AttributeOverride(name="email",[email protected](name="email",nullable=false)), 
}) 
public List<EmailU> getEmails() { 
    return emails; 
} 

w klasie E, starałem się opisywać maila z @Email:

@Embeddable 
public class EmailU implements Serializable { 
    private String email; 

    public EmailU(){ 
    } 

    @Email 
    public String getEmail() { 
     return email; 
    } 
} 

Ale to nie działa. Jakie powinno być moje podejście tutaj?

Odpowiedz

12

Dodaj adnotację @Valid do swojej kolekcji właściwości. Spowoduje to uruchomienie dostawcy sprawdzania poprawności w celu sprawdzenia poprawności każdego elementu w kolekcji, który następnie wywoła weryfikator walidacji @Email.

@Valid 
@ElementCollection 
@CollectionTable(schema="u",name="emails",[email protected](name="person_fk")) 
@AttributeOverrides({ 
    @AttributeOverride(name="email",[email protected](name="email",nullable=false)), 
}) 
public List<EmailU> getEmails() { 
    return emails; 
} 

Adnotacja Dokumentacja: http://docs.oracle.com/javaee/6/api/javax/validation/Valid.html

Powiązane problemy