-1

ターミナルアプリケーションが機能していて、HibernateDBを実装しています。次のことが適切に行われるのだろうか。

囲んでいるオブジェクトBookStoreは、タイプごとにグループ化された注文のリストを保持します。

class BookStore {
    Map<BookType, List<Order>> orders;
}

Hibernateに切り替えると、マップ内でリストを使用できません。したがって、次のような別のオブジェクトを導入する必要があります。

class OrderList {
    List<Order> orders;
}
class BookStore {
    Map<BookType, OrderList> orders;
}

しかし、これは適切ですか?書店にすべての注文の並べ替えられていないリストを保持させ、必要に応じて次のようなsqlステートメントを使用してそれらをフェッチする方がよいでしょうか。SELECT * FORM order o WHERE o.ordertype=OrderTypeA

と:

class BookStore {
    List<Order> orders;
}
4

1 に答える 1

0

BookType関連するフィールドを非正規化してOrderクラスに追加してみませんか。これにより、オブジェクトに of のみがList含まれ、特定のオブジェクトが特定のOrderオブジェクトにいくつ含まれてBookStoreいるかを簡単に知ることができます。スペースをいくらか無駄にしますが、読み取り操作は高速になります。唯一の欠点は、書き込み操作が (最初の正規化されたモデルよりも) 重くなる可能性があることですが、書き込み操作の実際の複雑さと、(現在は改善された) 読み取り操作。OrdersBookTypeBookOrder

于 2012-10-30T14:45:54.370 に答える