2009-02-05 107 views
1

我有装运和产品实体。每批货物都包含任意数量的产品。即一个货件有一个名为products的字段,它是一个java.util.Map,其中key是要发货的产品,值是要发货的产品的实例数。如何使用hibernate注释将Map从实体映射到Value?

如何将它映射到带有hibernate注释的数据库?

回答

1

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

除非您在不依赖于hibernate生成的id的类中正确定义equals和hashCode方法,否则这将不起作用。 (或阅读完整故事here)。

@CollectionOfElements(targetElement=Integer.class) 
@MapKeyManyToMany(targetEntity=Product.class) 
private Map<Product, Integer> map = new HashMap<Product, Integer>(); 
0

这似乎是一个有点古怪的设计给我的,但如果我理解正确的话,你会希望有一个数据库模式:

  • 具有ID
  • 产品表装运表它有一个外键参考此ID

这是所有基本的,因为关系是一个基本的一对多关系从出货方和多对一的相反,当然。我可以给你的例子,但真的hibernate docs(向下滚动到地图的例子)似乎有覆盖。一些真的很难想到如何映射到注释的XML映射应该超过你。如果您尝试在纯JPA中执行此操作,您可能会遇到一些麻烦,因为链接的示例似乎使用公式。

相关问题