12

すでに長時間実行されているアプリケーションがあります。現在、Spring に移行しており、おそらく Hibernate またはその他の ORM を使用しています。

しかし、私たちは疑問に追いつきました。既存のデータベースに Hibernate を使用し、スキーマを中心にオブジェクトをモデル化することは推奨されませんか?

ほとんどの人は、Hibernate を使用せず、代わりに iBatis などの他の ORM を使用することを推奨しています。しかし、当社では、全員が Hibernate の支持者です。

経験はありますか?

4

4 に答える 4

14

要件を知らずにHibernate、iBatis、またはその他のものを選択するのは無責任だと思います。

ソリッドオブジェクトモデルがない場合、Hibernateはひどい選択だと思います。

データベースへのインターフェイスとしてストアドプロシージャを使用する場合、Hibernateはひどい選択だと思います。

Hibernateが生成する動的SQLが気に入らない場合は、Hibernateはひどい選択だと思います。

それを得る?それらの冬眠の支持者からのようなひざまずく反応は良い考えではありません。

iBatisまたはSpringJDBCテンプレートがHibernateよりも優れている可能性があります。暴徒に盲目的に耳を傾けるのではなく、その決定についてより多くの情報を得て、アプリケーションのためにそれを行う必要があります。

あなたはそれについてすべてか無かの必要もありません。ソリューションの一部を1つのテクノロジーで実装し、残りを別のテクノロジーで実装することができます。

クライアントに影響を与えずに実装を交換できるように、永続層をインターフェースベースにすることをお勧めします。

于 2013-01-09T01:55:26.760 に答える
4

SansORM (NoORM オブジェクト マッパー)を参照することをお勧めします。これは、SQL ファーストの開発用に設計されており、既存のスキーマの改造に適しています。

于 2013-01-15T00:42:54.513 に答える
2

Hibernate は、オブジェクトの下でデータベースをモデル化できる場合にうまく機能します。
逆に、データベース モデルをドメイン モデルとして取得する可能性があります。これらの 2 つのモデルがどれだけ離れているかを評価する必要があります。それ以外の場合は、データベース => ORM オブジェクト => ドメイン モデルをマップすることになります。私はそれを避けます。

ORM の部分をスキップしたい場合は、Spring JDBC Templateよりも好みのJDBIに満足しています。

于 2013-01-09T02:00:38.120 に答える
1

他の人が指摘しているように、ORM は、データベースがオブジェクト モデルから遠く離れていない場合にのみ適しています。

その場合、オプションは 2 つの理由で JPA を介して Hibernate になります。

  • Netbeans には、既存のデータベースから JPA エンティティを生成するツールがあります。このエンティティは Netbeans に依存しないため、最初のリバース エンジニアリング後に別の IDE を使用できます。

  • Spring Data JPA は、簡単なクエリを作成することを避け、難しいクエリに集中できます。

于 2013-01-09T02:46:14.827 に答える