2014-12-04 24 views
1

剛開始使用Hibernate驗證器。我有一個情況,一個bean的id在保存時自動生成。我希望在保存之前驗證bean。此時id可以爲空。但是,當我想更新它時,ID必須是notnull。Hibernate驗證器 - 根據生命週期可選驗證

因此,字段上的泛型@NotNull將不起作用,因爲當我去保存它時,它將無法驗證。

有辦法解決這個問題,但我想知道規範或hibernate實現是否有一個標準的方法來做到這一點。我想在保存時沒有任何驗證錯誤,並且沒有驗證更新。

如應用約束,但它被忽略,除非隱式命名或類似的東西。

在此先感謝。

回答

1

你可以通過groups來實現。

public class MyBean { 
    @NotNull(groups = UpdateBean.class) 
    private Long id; 
} 

驗證沒有id

validator.validate(myBean); 

驗證與id

validator.validate(myBean, UpdateBean.class); 
+0

啊組...感謝,工作。 – 2014-12-04 17:11:14