2

我对 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 的实例(现在这不是问题)。

我已经阅读了一些关于使用类来指向复合 ID(在官方教程中)、覆盖 equals() 和 hashCode() 但我无法完成这项工作,因为我对如何编写我的 hbm.xml 文件感到非常困惑...

有什么帮助吗?谢谢!

4

1 回答 1

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
于 2010-09-14T03:33:57.913 回答