私はあなたに良いユニットと統合テストがあることを願っています。そうでなければ、これが始まるところです。
その後、最初のステップでabstract factory
を作成し、すべてのDAOとエンティティにアクセスし、クライアントからのすべてのアクセスをその工場を経由して変更することができます。このステップでは、そのファクトリの実装を提供し、具体的なファクトリJpaAccessFactory
を作成し、そのメソッドがDAOとJPAを使用して埋め込まれたエンティティを返さなければなりません。
最初の手順で何も悪くはないことがわかったとき。 2番目の手順に進みます。
工場出荷時の実装を作成するSqlAccessFactory
は、SQLを使用してDAOとエンティティ(エンティティクラスのオブジェクトは実際にはDAOです)を埋めます。いくつかの単位テストを書くと、両方の工場が使用され、JpaAccessFactory
とactual
によって提供されるexpected
を使用してアサートを行います。SqlAccessFactory
によって提供されます。
テーブルのファクトリメソッドとそのすべての依存関係をSqlAccessFactory
に実装すると、このメソッドによって提供されるDAOまたはエンティティを使用するクライアント/ページに新しいファクトリを使用して取得されます。あなたはこれを設定可能にすることができますので、魔法使いの工場を変更するコードを変更する必要はありません。これはまた、何かがそうではないことが分かった場合、簡単に元に戻すことができるという利点があります。
ファクトリメソッドの魔女は、まだ私は、これはいくつかのヒント1と起動方法を与える願っています例外
throw new UnsupportedOperationException
("Not yet implemented, please configure your client/page to use JPA.");
を投げることができSqlAccessFactory
に実装されていません。
出典
2013-04-06 10:51:24
A4L
Spring JDBCテンプレートをお勧めします。 JDBCボイラープレートコードの手間をかけずに、実行されているSQLを完全に制御できます。 –
こんにちは、申し訳ありませんが、これは答えではありません。私はJDBC TemplateとApache DBUtils(既にそれらを使用しています)を認識していますが、うまくいきますが、JPAを並行して実行している間に移行を開始する方法についての質問があります。 – bozo