我有一个工作终端应用程序,现在正在实现Hibernate DB。 想知道以下是如何正确完成的:
封闭对象BookStore
包含按类型分组的订单列表。
class BookStore {
Map<BookType, List<Order>> orders;
}
切换到Hibernate时,我无法在地图中使用List。所以我必须引入另一个Object,例如:
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;
}
答案 0 :(得分:0)
为什么不对BookType
类中的相关Order
字段进行反规范化并添加,以便您只有List
个Order
个对象在BookStore
中,您将能够轻松了解特定Orders
中某个BookType
的{{1}}个,等等。您浪费了一些空间,但阅读操作会更快。唯一的缺点是写入操作可能会变得更重(与初始的标准化模型相比),但这可能不是真正的问题,这取决于所述写入操作的实际复杂性,以及它发生的频率而不是(现在改进)阅读操作。