0

我在执行休眠映射时遇到问题。场景如下:

  1. 有一个用户类,其中包含用户名、姓名、出生日期、图像和其他与用户相关的信息,用户名作为主键。
  2. 第二类是 Product 类,它具有产品 id 和与产品相关的其他信息,主键作为产品密钥。
  3. 第三个类是 Order 类,它具有 OrderId、OrderDate、Username- 应该是外键-指的是 User 类的用户名,最后是一个 Set 类型的 Product- 因为一个订单可以有很多产品。

现在我希望 Order 类的主键作为复合键(OrderId,ProductID),并且这个 productID 应该是来自 Product Class 的引用。

我要创建的关系如下: 1. 一个订单只能属于一个用户 2. 一个订单可以有多个产品

有人可以指导我如何去做吗?任何形式的帮助都会很棒。

4

1 回答 1

0

我认为您很可能正在考虑类似的关系。您的要求的不同之处在于您需要从 Order/PurchaseOrder 到 Product/Item 的一对多映射,并且您不需要 Shipment。

我的建议是:

  1. 创建双向一对多关系 b/w 用户和订单。双向的好处是您可以从订单对象访问用户对象,如果不需要,您可以保持从用户到订单的单向。
  2. 创建一对多关系黑白订单和产品。
  3. 不要按顺序排列复合键,而是将主键保留为 OrderID。您仍然可以从您的订单对象和用户对象的订单对象中获取产品列表。

做出此决定的重点是从哪个对象派生剩余对象。使用 ORM,您应该知道将从哪个对象中获取 rest,因此我的建议是基于您将 User 对象作为附加实体可用的假设,因此您可以获得订单列表(定义为集合)并从特定订单中找出列表/产品集。

如果您首先有可用的 Order 对象,则使用 User 创建一个双向对象。这样您就可以在一端找到产品列表/集,而在另一端找到关联的客户。

对于 ORM 映射,请参阅Hibernate 映射示例。

希望这可以澄清。

于 2013-11-13T07:54:21.420 回答