2011-10-23 7 views
4

ためのDAOとJPA私はOWASP specification for hashingを使用してSQLインジェクションを防ぐセキュアなログインを作るしようとしているが、私のアプリケーションの他の部分のために私はJPAを使用したと思って、私はかどうかを知りませんハイブリッドを使うのは良い習慣ですが、すべてのデータレイヤーにDAOを使用して一貫性を保つだけでいいですか?Webアプリケーション:データ層

JPAとDAOの両方を使用すると、実行時に互換性の問題が発生するかどうかも知りたいですか?

おかげ

答えて

2

これは、JPAで作業するときにDAOレイヤーを使用することが理にかなっているかどうかについての解説です。

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

私は

+0

私はカスタムクエリを使うのがはるかに簡単なので、DAOだけを認証用に、JPAを残り用に使うべきです。 –

+0

データアクセスロジックのみのEntityManagerのCRUDメソッドを呼び出す必要ならば、上記の記事で述べたように、私はこの場合に任意の値を追加することなく、EntityManagerのの単なるラッパーになるDAOを含まない罰金だと思います。 –

+0

さて、私はそれを今すぐ取得し、あなたは正しい、私はJPAに固執する必要があります。明確化のためにありがとう。 –

1

ベストな方法は、あなたは私が休止状態の代わりに、JPAを使用しています私のプロジェクトをJPA.in使用することができ、アプリケーションのpurpose.Restをハッシュセキュアログイン用のDAOを使用することができます。

+0

これは互換性の問題を引き起こしません。 –

0

あなたのDAOは、インターフェイスベース、実装はあなたが自由に変更することができる選択であることを意味あるべきすべてのデータアクセスロジック(例えば、ログイン)に同じapliesを考えます新しい実装をプラグインすることでクライアントは、DAOインターフェイスについてのみ知っている必要があります。

これが正しい場合、私はあなたの質問を理解していません。あなたのDAOはインターフェイスです。 JPAはあなたが多く選ぶ1つの実装になります。 /またはどちらでもない。それはインタフェース/実装です。

+1

さて、あなたは私がサービスを公開するためのインタフェースを使用するつもりだったが、私はDAOを実装していない模様だと思ったので、私は、「明確」、明確持っていた何かをしました。 –

+0

間違っています - それはインターフェイスです。 – duffymo

関連する問題