1

我有 Shipment 和 Product 实体。每批货物包含任意数量的任意数量的产品。例如,一个货件有一个名为 products 的字段,它是一个 java.util.Map,其中键是要运输的产品,值是要运输的产品的实例数。

如何将其映射到带有休眠注释的数据库?

4

2 回答 2

1

这是你必须做的。该字段map属于Shipment该类,并将每个映射Product到发货的产品数量。

除非您在类 Product 中正确定义不依赖于休眠生成的 id 的 equals 和 hashCode 方法,否则这将不起作用。(或在这里阅读全文)。

@CollectionOfElements(targetElement=Integer.class)
@MapKeyManyToMany(targetEntity=Product.class)
private Map<Product, Integer> map = new HashMap<Product, Integer>();
于 2009-02-10T15:06:26.353 回答
0

这对我来说似乎有点奇怪,但如果我理解正确,您将需要一个具有以下特性的数据库模式:

  • 一个有 id 的装运表
  • 具有引用此 id 的外键的产品表

这是一种基本的关系,因为从发货方来看,这种关系是基本的一对多关系,当然反面是多对一关系。我可以给你一些例子,但实际上休眠文档(向下滚动到底部以获取地图示例)似乎已经涵盖了这一点。关于 xml 如何映射到注释的一些非常艰难的思考应该会让您度过难关。如果您尝试在纯 JPA 中执行此操作,则可能会遇到一些麻烦,因为链接的示例似乎使用了公式。

于 2009-02-05T23:15:21.430 回答