2011-10-23 28 views
4

我想做一個安全的登錄,防止SQLInjection使用OWASP specification for hashing但我的應用程序的其他部分我正在考慮使用JPA,但我不知道是否使用混合模式是一個很好的做法,或者我應該堅持使用所有數據層的DAO並保持一致?Web應用程序:DAO和JPA的數據層

我也想知道在運行時是否同時使用JPA和DAO會導致兼容性問題?

感謝

回答

2

這是關於在使用JPA時是否有意義使用DAO層的討論的答案。

How should EntityManager be used in a nicely decoupled service layer and data access layer?

我認爲同樣aplies任何數據訪問邏輯(例如,登錄)

+0

所以我應該只使用DAO進行身份驗證,其餘的使用JPA,因爲使用自定義查詢要容易得多。 –

+0

正如在上面的帖子中提到的,如果你的數據訪問邏輯只涉及調用EntityManager的crud方法,我認爲不包括DAO,在這種情況下,它只是EntityManager的包裝而不添加任何值。 –

+0

好吧,我現在明白了,你說得對,我只應該堅持JPA。感謝澄清。 –

1

最好的辦法是,你可以使用DAO安全登錄散列你可以用JPA.in我的項目,我使用Hibernate的,而不是JPA應用程序的purpose.Rest。

+0

好的,這不會導致任何兼容性問題? –

0

你的DAO應該是基於接口的,這意味着實施是可以隨意修改的選擇通過插入一個新的實現。客戶應該只知道DAO界面。

如果這是正確的,那麼我不明白你的問題。你的DAO是界面; JPA將成爲您在衆多選擇中的一個實施。它不是/或;它是接口/實現。

+1

那麼,你做了一件我已經清楚,更清楚的事情,因爲我打算使用接口來公開服務,但我認爲DAO是實現而不是模式。 –

+0

錯 - 它是界面。 – duffymo

相關問題