我是新來的ORM,並就死在了以下問題(簡化這裏的討論):怎麼做的Hibernate ORM映射爲一個二維數組
我建模比賽,與競爭對手和學科。兩者都有自己的實體類。競爭對手每次只參加一次競賽,並獲得一個分數。只要競爭對手還沒有參加某個特定的學科,就沒有得分。
數據模型:
一個簡單的數據庫設計將是一個成績表的外鍵這兩個競爭對手錶和學科表。也就是說,我會建立兩個一對多的關係,外加對外鍵的完整性約束 - 只要存在引用任何一個的分數,我就不能刪除競爭對手或紀律。
但是,我該如何將這個二維數組(我的課程)映射到我的課堂上?我正在使用Java和Hibernate。 我目前的解決方案是將分數集合放入競爭對手實體類中,並且類似於Disciplines類。這爲兩個實體類中的每一個創建了與連接表的雙向關係。這是做映射的推薦方式嗎?
它確實從每個域類的角度映射關係,但是它錯過了二維數組結構。我想要輸出整個數組 - 例如在用戶界面上 - 包含競爭者的行,紀律的列以及相應表格單元格中的分數。如上所述,從實體類中構建這樣一個輸出是很乏味的,需要(a)遍歷競爭對手的集合,然後(b)查找相應的規則 - 或者反過來。
理想情況下,我希望有一個包含兩個鍵(如Guava Table或嵌套哈希映射)的哈希映射。我想這種高級集合沒有本地Hibernate映射。但也許有一個最佳實踐如何使用自定義查詢來實現它?