[英]How to validate String of Email in JPA entity
我在數據庫中的長度為512列。它將包含多個用“;”分隔的電子郵件地址。 如何在實體中驗證其各自的變量,以便所有電子郵件地址均有效。
列表將不起作用,因為我需要將其保留在該列中。 數據如下:
@Basic
@Column(name = "CC_EMAIL_ADDRESS", nullable = true, length = 512)
private String emailCC;
您可以在實體中使用@PrePersist回調事件對電子郵件進行驗證,然后再將其保存到數據庫中。
@PrePersist
public void validateEmails(){
//Validate Here
}
或者,您可以在實體中創建setter方法,然后使用setter方法驗證數據。
使用經過驗證和正則表達式:
@Basic
@Pattern(regexp = "\\w+@\\w+\\.\\w+(,\\s*\\w+@\\w+\\.\\w+)*")
@Column(name = "CC_EMAIL_ADDRESS", nullable = true, length = 512)
使用javax.validation
庫。 如果您在設置嘗試保留email
時無法驗證,則將拋出驗證異常,或者可以從ValidatorFactory
開始進行手動驗證。
@NotNull(message="{email.required}")
@Pattern(regexp = "[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\."
+ "[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@"
+ "(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\\.)+[A-Za-z0-9]"
+ "(?:[A-Za-z0-9-]*[A-Za-z0-9])?",
message = "{invalid.email}")
private String email;
這樣我在項目中成功使用
@NotEmpty
@Email
@Size(max = 255)
@Column(unique = true)
private String email;
@PrePersist
@PreUpdate
private void prepareData(){
this.email = email == null ? null : email.toLowerCase();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.