0

たとえば、次のクラスは次のとおりです。

public class Boss{
    ... 
    @OneToMany(mappedBy="boss")
    Set<Employee> employees;
}

public class Employee{
    @ManyToOne
    Boss boss;
    ...
}

上司と従業員の間には関係があります。boss.getEmployees()を実行して、ボスからすべての従業員を見つけることができます。

関係の要素を知るためにSDFDKは何をしますか?上司からすべての従業員のIDを保存しますか?

boss.getEmployees()と、「SELECT e FROM Employee e where e.id='boss_id'」を使用したクエリのパフォーマンスの違いを知りたいのですが。

ありがとう。

4

1 に答える 1

2

boss.getEmployees()と、「SELECT e FROM Employee e where e.id='boss_id'」を使用したクエリのパフォーマンスの違いを知りたいのですが。

パフォーマンスの違いはありますが、同じように機能します。もちろんJPAより遅いです。また、よりも低いレベルにあります。私はあなたにこれを言います。の使用法には1つの主な利点があり、独自の実装で多くの時間を節約できますが、独自の実装の場合ほどクエリを制御することはできません。メソッドやその他のの内部実装については何も知りません。JDBCJDBCJPAORMORMORMJPA

独自に実装するとORM、クエリをより細かく制御できるようになり、アプリケーションの要件に基づいてクエリを最適化できますが、時間がかかります。あなたの代わりに必要なすべてのdbロジックを実装するフレームワークですJPAORMあなたはただ注釈を通してあなたが欲しいものを彼に伝える必要があります。

フレームワークの次の利点はORM、アプリケーションがデータベースレイヤー(データソースのタイプ)に依存しないことですがAbstractDAOFactoryAbstractDataMapperなどの適切なデザインパターンを実装することでこれを実現することもできます。

于 2013-03-23T21:06:07.663 に答える