[英]Spring Hibernate Bean Validation @valid
我知道這在該論壇中不是新問題,但我很困惑該怎么辦。
問題:我正在使用Spring MVC + Hibernate開發一個應用程序。 對於服務器端驗證,我在控制器中使用@valid批注,在bean中使用@null和@notNull批注。
例如
public class User implements Serializable {
private static final long serialVersionUID = 2158419746939747203L;
@Id
@Column(name="USER_ID")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private long userId;
@Column(name="USERNAME", unique = true)
@NotEmpty @NotNull @Size(min=6, max=20)
private String username;
@Column(name="PASSWORD")
@NotEmpty @NotNull @Size(min=6, max=20)
private String password;
這種驗證進行得很好,數據也保存在DB中。
但是我想使用沒有任何驗證器類的注釋來驗證唯一約束,參照完整性和其他約束。
可能嗎? 如果沒有,那么什么是最好的和最簡單的方法(更少的編碼)呢? 如果框架能為我做到,我將不勝感激。
SAURABH,
對於表中的唯一約束,
@Id
您還可以通過休眠注釋來強制引用完整性。
@OneToOne(mappedBy = "foo")
這是一個示例帖子
這是一個非常詳細的教程,也對此進行了探索:
您可以像下面提到的那樣編寫一個“ CustomUniqueConstraintValidator”
您還可以將參數從注釋傳遞到自定義驗證器。 例如。
@CustomValidDate("columnName")
要創建適用於任何字段/列1的通用類。您可以編寫通用的自定義驗證器2.使用注釋參數(在每個類屬性上)傳入表名和列名。 3.然后,在驗證器中,您可以使用表名,列名來應用驗證邏輯(唯一性等)。
謝謝保羅
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.