我对Hibernate很新,我在使用复合ID和外键时遇到了一些麻烦, 我只是想做这个工作:
======= =======
Table A Table B
======= =======
atr1 PK atr1 FK(Table A, atr1) PK
atr2 PK atr2 FK(Table A, atr2) PK
atr3 atr3 FK(Table C, atrN) PK
atr4
关系如下:A有(知道)没有更多B的实例(它们的列表),B有(只知道)C的一个实例(现在这不是问题)。< / p>
我已经阅读了一些关于使用类来指向复合id(在官方教程中),重写equals()和hashCode()的内容,但是我无法使其工作,因为我对如何编写我的hbm感到很困惑.xml文件......
有任何帮助吗?谢谢!
答案 0 :(得分:0)
如果您只是简化数据模型并摆脱一些冗余,您可能会觉得自己更开心。在像这样的更复杂的数据建模问题上处理Hibernate可能会导致后来的挫折,即使你确实让它工作。也许考虑给B一个简单的A_id而不是A本身的属性(看看它们如何精确地映射到A的主键上)
___A___
id PK
atr1
atr2
atr3
--> composite unique(atr1, atr2)
___B___
id PK
a_id FK (A.id)
c_id FK (C.id)
atr4
--> composite unique(a_id, c_id)
___C___
id PK
atrN unique