如何在地图中为hibernate实现List?

时间:2012-10-30 14:34:16

标签: java hibernate java-ee

我有一个工作终端应用程序,现在正在实现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;
}

1 个答案:

答案 0 :(得分:0)

为什么不对BookType类中的相关Order字段进行反规范化并添加,以便您只有ListOrder个对象在BookStore中,您将能够轻松了解特定Orders中某个BookType的{​​{1}}个,等等。您浪费了一些空间,但阅读操作会更快。唯一的缺点是写入操作可能会变得更重(与初始的标准化模型相比),但这可能不是真正的问题,这取决于所述写入操作的实际复杂性,以及它发生的频率而不是(现在改进)阅读操作。