2012-12-21 24 views
7

Bir e-posta toplama özelliğine sahip bir kişi varlık vardır:Bir Gömülü varlık özelliği üzerinde bir doğrulama kısıtlaması nasıl uygulanır?

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

    public EmailU(){ 
    } 

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

Ama çalışmıyor: Benim Eposta sınıfta

@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; 
} 

, ben @Email sahip e-postaları açıklama çalıştı. Benim yaklaşımım ne olmalı?

cevap

12

Koleksiyonunuza bir @Valid ek açıklaması ekleyin. Bu, doğrulama sağlayıcınızı koleksiyondaki her bir öğeyi doğrulamak için tetikler ve ardından @Email onaylayıcınızı çağırır.

@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; 
} 

Ek Açıklama Belgeler: http://docs.oracle.com/javaee/6/api/javax/validation/Valid.html

İlgili konular