2010-12-07 25 views
11

我剛開始升級所使用Hibernate的3.5.6.Final到3.6.0.Final的應用程序,並且出現了一些hickups。最後的hickup我找不到解決方案。禁用休眠驗證上保存/更新與Hibernate 3.6.0.Final

3.6.0.Final似乎當一個對象被保存/通過Hibernate更新Bean驗證自動打開。這是非常糟糕的,因爲我的一些測試不會打擾所有的屬性設置 - 他們只是不需要。我實在不認爲要設置每個「描述」字段和無數其他字段只是爲了遵守一些任意的驗證。

這是要逼我花幾個小時在我所有的測試,使有效對象(我有超過1300個功能測試現在)。坦率地說,這是毫無意義的,因爲我確信所有驗證都發生在MVC中,並且目前沒有其他方法可以將數據導入數據庫。

我也不想承擔通過驗證我的豆子兩次擊中性能 - 在MVC一次,然後內Hibernate的其他時間。這在我的情況下並不需要。

有沒有辦法我可以關閉它?我使用Spring和常規Hibernate映射文件,而不是JPA(我不喜歡所有註釋)。

回答

22

以下內容添加到persistence.xml

<validation-mode>NONE</validation-mode> 

或屬性添加到hibernate.cfg.xml

<property name="javax.persistence.validation.mode">none</property> 

查看更多選項見23.1.2. Configuration

+0

有什麼辦法可以通過春天做到嗎?我不使用JPA,只是定期映射xml文件的hibernate。 – egervari 2010-12-07 19:39:01

2

設置hibernate.validator.autoregister_listeners屬性false。您也可以將hibernate.validator.apply_to_ddl設置爲false。