2012-12-21 24 views
7

मैं एक ईमेल संग्रह संपत्ति के साथ एक व्यक्ति इकाई है:एक एम्बेड करने योग्य इकाई संपत्ति पर सत्यापन बाधा को कैसे लागू करें?

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

मेरे ईमेल वर्ग में, मैं @Email के साथ ईमेल व्याख्या करने की कोशिश की:

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

    public EmailU(){ 
    } 

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

लेकिन यह काम नहीं करता। यहां मेरा दृष्टिकोण क्या होना चाहिए?

उत्तर

12

अपनी संग्रह संपत्ति में @Valid एनोटेशन जोड़ें। यह संग्रह में प्रत्येक आइटम को सत्यापित करने के लिए आपके सत्यापन प्रदाता को ट्रिगर करता है, जो तब आपके @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; 
} 

एनोटेशन प्रलेखन: http://docs.oracle.com/javaee/6/api/javax/validation/Valid.html