0
我有一个类Product
和一个类Part
,其中每个部分只能属于一个产品。每种产品都有其部件清单,但一部分没有提及其产品。hibernate集合映射 - 如何将集合所有者id作为外键放入集合的元素表中?
@Entity
@Table (name= "products")
class Product {
@Id
@GeneratedValue
@Column(name = "Id")
int id;
@Column(name = "Name")
String name;
@???
List<Part> myParts;
部分:
@Entity
@Table (name= "parts")
class Part {
@Id
@GeneratedValue
@Column(name = "Id")
int id;
@Column(name = "Name")
String name;
}
在我的数据库中的表“产品”不存储有关的部分信息,但“零件”表跟踪产品的一排“PRODUCT_ID”。
产品:
| id |名称|
部件:
| id |名称| procuct_id |
我认为这是相当正常的OO-和ORM“世界”这种相反的方法,但我无法找到如何坚持我的对象与休眠到这种结构!
对于一对多注释,我只找到部分id已存储在产品表中的示例。 对于多对一,它似乎需要我的零件对象中的产品参考,不是吗?
我希望我错了! ;)
有没有人知道是否有一种方法来映射这个没有引用我的类或表结构?
(我会非常非常高兴,如果你可以用注释解释它,而不是使用XML :))
哦好吧,它的工作原理! :)我在我的数据库中有一个错误... 在哪种情况下可能是一个问题,而不是有这样的领域? 我真的很想避免它,因为从面向对象的角度来看它会非常“丑陋”,不是吗?! ;) – chris
@chrissy:这只是一个建议。我不会有任何问题,但是对于设计来说,数据库中的产品表到零件表都有一个外键,但该关系实际上是隐藏的,并且不会反映在您的ORM映射中。 –