2009-04-27 2 views
2

ORMに対してHibernateを仮定します。ORMは既存のアプリケーションと統合されていますか、またはわかりませんか?

私はこれをどうやって質問するか分かりません。私は別のアプリケーションの一部を置き換えることができるアプリケーションを構築したい。たとえば、「大きな」アプリと呼ばれるさまざまなモジュールを持つアプリケーションがあるとします。このアプリケーションは人事、財務、購入、スキルセットなどを処理することがありますが、何らかの理由でスキルセットモジュールが嫌いですが、残りのアプリケーションは気に入っています。私は、 "大きな"アプリケーションの残りの部分が使用するのと同じデータベースを使用するが、そのソフトウェアのフロントエンドとして私のソフトウェアを使用するアプリケーションを構築したい。

私のアプリケーションをビルドし、ORMなしで直接データベースにヒットさせることができました。私の質問は、ここにORMを使用する利点があるということです。 「ビッグ」アプリがなくなり、別のアプリが購入された場合、私はスキルセットのバージョンを使用し続けることができるのは、私が物事を直接打つのではなく、休止状態を使用しているからです。私はまだ学んでいますが、私のアプリケーションでは、名前を付けたオブジェクトを使用していると思っていましたが、私はちょうど私のマッピングファイルまたは/および私のコードを少し変更する必要があると述べた。

これは別の例です。私は、レガシーアプリケーションとレガシーデータベースを持っています。データベースXを使用しています。データを取得するために使用されていた古いターミナルエミュレータアプリケーションがなくなり、グラフィカルバージョンが必要になると私は判断しました。私はアプリケーションで休止状態を使用することができます。そして、最終的に従来のデータベースを取り除き、最新のOracleまたはSQL Serverに変更することを決定したとき、私は頭痛を最小限に抑えることができますか?それとも、私のデータベースはそれほど変わっていなくても問題ありません(新しいデータベースに変更すると、より多くの情報が取り込まれることをお勧めします)。

私は、休止/ ORMがなぜ利益になるかどうかを誤解している場合、私はコメントを期待していました。

ありがとうございます。

答えて

1

データベーススキーマが完全に異なるものに変更された場合、frmo hibernateに大きな利益をもたらすとは思っていません。特に、もっと多くの "構造"がデータベースに追加されていると、列およびそのようなスキーマの事柄)。つまり、データベースがほぼ同じように構成されていても、カラム名とテーブル名が変更され、いくつかのテーブルがマージされていたり、マッピングが変更されたりするだけです。

しかし、私は本当にデータベースの不安定さのためにhbernateを使用することをお勧めします。これはかなり簡単な方法です。

あなたのデータベース全体が変更された場合にはそれほど役に立ちません。そのような驚異的な力が私には大部分の時間に直接DBアクセスを選択することになります。

最後に、データアクセスを避けるリポジトリパターンなどのサービスレイヤを使用することについて考えることができます。そのため、データベースが変更されても、ビジネスの変更は必要ありません。

+0

サービスレイヤは休止状態に追加されていますか? – johnny

+0

はい、上記の要件については、データベースの構造とアプリケーションのデータ使用を分離するために、追加のレイヤーを使用することが適切だと思います。 – asgerhallas

+0

あなたはオンラインでの例を知っていますか? – johnny

1

ORMを使用することが確実に簡単になることは、あるDBMSから別のDBMS(別名OracleからSQL Server)への切り替えです。

「大きなアプリ」から別の「大きなアプリ」に切り替える場合、ORMを使用するとそれほど助けになるかどうかは疑問です。データベース構造とビジネスロジックが異なるため、多くのコードを書き直すことになります。

0

Hibernate Toolsでドメインオブジェクトを生成することができます。しかし、あなたが手ですべてのオブジェクトを書く場合、あなたは死ぬでしょう。私は、アプリの一部を書き直し、冬眠をより良く知ることができると考えています。

0

知られていないものの 未知数に基づいて判断することは、一般的には悪い考えです。あなたがデータを決定しているかどうかにかかわらず、アクセス/永続化戦略、購入する車、またはどの大学に行くかを決定する場合は、 を今日知りたいと思うものに最大限重視する必要があります。明日は起こらないかもしれない。

オームズを検討する際に(つまり、どちらかだすでにこのの歴史はあなたの会社であります の話、またはされていない限り)だから、私は「離れていく」またはDBMSには、変更などのアプリケーション ようなものについてはあまり心配しないでしょう。私は、これらは決して起こらないものではなく、メンテナンス性、パフォーマンス、開発者の生産性に関する一般的に重要な考慮事項に後ろ向きにすべきであると言っています。

要するに、問題を解決し、今日の要件を満たす能力に基づいてORMを選択します。

関連する問題