2017-07-14 25 views
0

我有一個包含像數據的形式:namedescriptionmeta_titlemeta_keywordsmeta_description。 在實體類,我已經加入此驗證:實體場條件不被強制

@NotBlank(message = "{name.notblank}") 
@Size(min = 2, max = 250, message = "{name.size}") 
@Column(name = "pgs_name") 
private String name; 

@NotBlank(message = "{description.notblank}") 
@Size(min = 10, message = "{description.size}") 
@Column(name = "pgs_description") 
private String description; 

@Nullable 
@Size(min = 2, max = 250, message = "{meta_title.size}") 
@Column(name = "pgs_meta_title") 
private String meta_title; 

@Nullable 
@Size(min = 2, max = 250, message = "{meta_keywords.size}") 
@Column(name = "pgs_meta_keywords") 
private String meta_keywords; 

@Nullable 
@Size(min = 2, max = 250, message = "{meta_description.size}") 
@Column(name = "pgs_meta_description") 
private String meta_description; 

我想要什麼,如果,例如,現場meta_title完成之後,再檢查,如果條件:@Size(min = 2, max = 250, message = "{meta_title.size}")得到尊重,如果別人沒有完成,則,沒問題,數據庫中的字段將爲空。

問題是休眠不關心@Nullable它會自動驗證字段@Size註釋。

那麼,我可以用什麼註釋來解決我的問題? 謝謝!

回答

0

您可以編寫自定義驗證註釋和實現ConstraintValidator的類。通過覆蓋isValid方法,您可以將自定義邏輯添加到自定義註釋中。查看this示例。