1

データベース内のテーブルごとに休止状態のアノテーションを持つPOJOクラスがあります。また、SessionFactoryを作成するデータベース用のHibernateUtilityが1つあります。

DBテーブルごとにマネージャーを作成する必要がありますか、それともDBごとにマネージャーを作成する必要がありますか?

マネージャーの下では、すべてのトランザクションを実行するクラス、CRUDを意味します。

どれが私に最高のパフォーマンスを与えますか?

4

3 に答える 3

1

通常、テーブルごとにDAOを設定すると便利です。一般的なdaoを使用できるため、多くのコードを記述する必要はありません。

パフォーマンスに関して:休止状態を使用していることを忘れないでください。休止状態は、その柱の1つとしてパフォーマンスが低下しますが、通常、休止状態は開発時間を短縮します。パフォーマンスが必要な場合は、myBatisまたは単なるjdbcを使用してみてください。

于 2012-08-07T12:25:50.533 に答える
1

DB内のテーブルごとにDAOクラスを使用することをお勧めします。実際には、通常のCRUD操作をすべて実行する抽象DAOオブジェクトがあり、必要に応じてクエリメソッドをオーバーライドまたは追加します。すべてが1つのDAOに含まれていると、CRUDロジックを再利用できません。

実際、誰もが使用する標準の抽象CRUD実装がないことに驚いています-書くのは簡単です(おそらく、よく維持されているものがありますか?)。私のジェネリックDAOには、取得するための便利なメソッドもありEntityManagerFactoryます。これらの種類のものが注入されていないJavaSE環境で役立ちます。

于 2012-08-07T12:26:13.670 に答える
1

パフォーマンスは、クラスの数とは関係ありません。

DBテーブルごとのマネージャーが多すぎます。ビジネスのユースケースには通常、複数のテーブルが含まれます。

データベース全体のマネージャーが少なすぎます。アプリケーションのすべてのビジネスロジックを1つのクラスに含めることは維持できません。

アプリケーションには通常、ユーザー管理、通知管理などのユースケースのグループがあります。ロジックをクラスに分割する方法としてこれらを使用します。

また、ビジネスロジック(マネージャークラスにあると私が想定したもの)は、データアクセスロジック(DAO、リポジトリ)から分離する必要があることに注意してください。CRUDは通常DAOの責任ですが、ビジネスロジックとトランザクションの境界設定はサービス(マネージャー)レイヤーで行われます。

于 2012-08-07T12:26:28.080 に答える