可嵌入类的Map实体

时间:2014-10-15 09:46:13

标签: hibernate orm

我编写了一个Team实体和一个Player实体。

一支球队有两名球员。

如何在Hibernate中进行映射。

通过将“Player”设为Embeddable实体类并将其嵌入“Team”类两次是我认为使用的一种方式。那么关系将如何映射。 OneToOne还是其他任何方式?

2 个答案:

答案 0 :(得分:0)

TeamPlayer应被视为2个不同的实体,您无法在Player内嵌入Team

您可以浏览hibernate文档何时使用可嵌入组件:

5.1.5. Embedded objects (aka components)

  

可嵌入对象(或组件)是属性所在的对象   映射到拥有实体表的同一个表。组件可以,   反过来,声明自己的属性,组件或集合

逻辑上,一个团队可以有很多玩家,所以你需要一对多的关系。

请参阅7.2.2.1. Lists部分下的文档,了解如何进行映射。

答案 1 :(得分:0)

你需要团队类中的一组玩家,并且必须以hibernate文档(包,集,列表或其他)中描述的任何方式将其映射为一对多。

不要创建具有两个播放器属性的Team类!

此外,在创建可选的一对一关系(在数据库中没有外键关系,因此可以进行孤立引用)时,使用一对多集合(没有或一个对象)可能很有用一对一,懒惰装载。