我有发货和产品实体。每批货物包含任意数量的任何数量的产品。即货件有一个名为products的字段,它是一个java.util.Map,其中key是发货的产品,值是该产品的实例数。
如何使用hibernate注释将其映射到数据库?
答案 0 :(得分:1)
这是你必须要做的。字段map
属于Shipment
类,它会将每个Product
映射到所发运的产品数量。
除非在Product类中正确定义不依赖于hibernate生成的id的equals和hashCode方法,否则这将无效。 (或阅读全文here)。
@CollectionOfElements(targetElement=Integer.class)
@MapKeyManyToMany(targetEntity=Product.class)
private Map<Product, Integer> map = new HashMap<Product, Integer>();
答案 1 :(得分:0)
这对我来说似乎有点奇怪,但如果我理解正确,你会想要一个具有以下内容的数据库架构:
这是一种基本的,因为这种关系是从出货方面的基本的一对多关系,当然反过来是多对一的关系。我可以给你一些例子,但实际上hibernate docs(向下滚动到底部的地图示例)似乎已经覆盖了。一些非常难以思考xml如何映射到注释应该让你感到震惊。如果您尝试在纯JPA中执行此操作,则可能会遇到一些麻烦,因为链接的示例似乎使用了公式。