我是新来的ORM,并就死在了以下问题(简化这里的讨论):怎么做的Hibernate ORM映射为一个二维数组
我建模比赛,与竞争对手和学科。两者都有自己的实体类。竞争对手每次只参加一次竞赛,并获得一个分数。只要竞争对手还没有参加某个特定的学科,就没有得分。
数据模型:
一个简单的数据库设计将是一个成绩表的外键这两个竞争对手表和学科表。也就是说,我会建立两个一对多的关系,外加对外键的完整性约束 - 只要存在引用任何一个的分数,我就不能删除竞争对手或纪律。
但是,我该如何将这个二维数组(我的课程)映射到我的课堂上?我正在使用Java和Hibernate。 我目前的解决方案是将分数集合放入竞争对手实体类中,并且类似于Disciplines类。这为两个实体类中的每一个创建了与连接表的双向关系。这是做映射的推荐方式吗?
它确实从每个域类的角度映射关系,但是它错过了二维数组结构。我想要输出整个数组 - 例如在用户界面上 - 包含竞争者的行,纪律的列以及相应表格单元格中的分数。如上所述,从实体类中构建这样一个输出是很乏味的,需要(a)遍历竞争对手的集合,然后(b)查找相应的规则 - 或者反过来。
理想情况下,我希望有一个包含两个键(如Guava Table或嵌套哈希映射)的哈希映射。我想这种高级集合没有本地Hibernate映射。但也许有一个最佳实践如何使用自定义查询来实现它?