2013-07-05 15 views
1

我在考慮驗證我的web應用程序。這是接近。 1)使用Spring Validator實現接口進行驗證 2)在域模型上使用JSR-303。驗證在哪裏組織在web應用程序中更高效的方式

第一種方法看起來更好,就像我可以使用消息來渲染任何語言的錯誤,並且可以執行更復雜的邏輯。但hibernate文檔顯示,對於hibernate,JSR-303更可取,我想我已經用註解映射識別了我的實體,並且爲驗證JSR 303而放置了更多它不會太多?如果可能的話,也許我應該這樣做。

你的建議是什麼?謝謝

+0

爲什麼不同時使用?據我所知,一個與另一個完好無損。 –

回答

1

就我個人而言,我認爲web(或輸入)驗證與持久性驗證非常不同。通常他們會是一樣的,但往往他們不會,除非你的應用程序只接收數據並放入一個數據庫,除了驗證之外不做任何事情。

如果您將持久性和輸入驗證混合在一起,那麼您的域模型將受到影響,因爲您將嘗試將其混合呈現+域模型,並且其中一個的更改會影響另一個(再見,再見局部)。

在一個非常簡單的應用程序中混合驗證可能沒問題,或者如果您正在構建「裸體對象」解決方案(在這種情況下,輸入必須是域)。

+0

是的。問題是我之前我使用模型數據驗證時,我沒有創建我的模型數據架構的SQL腳本和使用彈簧驗證作爲驗證我的應用程序的輸入,消息等。現在我決定我想通過休眠創建我的架構啓動。 –

+0

從hibernate創建模式通常也是一個壞主意,原因如下:1)您仍然需要更新腳本(不要讓hibernate升級數據庫模式!)。 2)通常,數據庫提供了更大的靈活性來創建模式,例如,您可以創建不同類型的索引,或者將數據存儲在數據庫的不同分區中,等等。正如我之前提到的,如果您正在構建的應用程序很小並且不適合用於生產,那麼這很好。 – Augusto

+0

謝謝。我也在想這個。 –

相關問題