1

ORMとSQLプログラミングの間の一見永遠の闘争の中で、疑問が生じます。なぜ両方を使用しないのですか?ほとんどのプログラミングにORMを使用し、選択したORMでは実行できないより複雑なJOINクエリやその他の複雑なクエリに対して独自のSQLクエリをプログラミングします。そうしない正当な理由はありますか?

4

2 に答える 2

3

ほとんどの場合、ORMで生成されたSQLは最適化されていません。

パフォーマンスが重要な場合は、バインディングにのみORMを使用し、すべてのクエリにユーザー定義SQLを使用することをお勧めします。

于 2013-01-15T12:21:36.497 に答える
2

ほとんどの ORM ソリューションは、Hibernateなどのネイティブ SQL をサポートしています。

この 2 つを組み合わせない理由は、一貫性のためです。データベースからデータを取得し、アプリケーションでオブジェクトに変換する 2 つの方法を理解しなければならない場合、覚えておくべきことが 2 倍になり、バグが発生する可能性が 2 倍になります。 2 倍のテストを行う必要があります (「データベースに接続してデータを取得する」コードの場合)。

実際には、ORM に慣れていない開発者はネイティブ SQL を使用する傾向があり、ORM ツールが好きな開発者は ORM レイヤーを使用してほとんどすべてを行うため、コードベースの保守と拡張が難しくなります。

これを行う場合は、少なくとも「JDBC (またはその他のもの) を介して直接ではなく、ORM ツールを介して SQL を実行する」ルールを強制します。これにより、少なくともある程度の一貫性が得られ、多くのオブジェクト マッピング機能。

ただし、理想的には、解決策を選択してそれに固執することです。賭けをヘッジすることはめったに無料ではありません。

于 2013-01-15T13:08:30.840 に答える