我编写了一个Team实体和一个Player实体。
一支球队有两名球员。
如何在Hibernate中进行映射。
通过将“Player”设为Embeddable实体类并将其嵌入“Team”类两次是我认为使用的一种方式。那么关系将如何映射。 OneToOne还是其他任何方式?
答案 0 :(得分:0)
Team
和Player
应被视为2个不同的实体,您无法在Player
内嵌入Team
。
您可以浏览hibernate文档何时使用可嵌入组件:
5.1.5. Embedded objects (aka components)
可嵌入对象(或组件)是属性所在的对象 映射到拥有实体表的同一个表。组件可以, 反过来,声明自己的属性,组件或集合
逻辑上,一个团队可以有很多玩家,所以你需要一对多的关系。
请参阅7.2.2.1. Lists部分下的文档,了解如何进行映射。
答案 1 :(得分:0)
你需要团队类中的一组玩家,并且必须以hibernate文档(包,集,列表或其他)中描述的任何方式将其映射为一对多。
不要创建具有两个播放器属性的Team类!
此外,在创建可选的一对一关系(在数据库中没有外键关系,因此可以进行孤立引用)时,使用一对多集合(没有或一个对象)可能很有用一对一,懒惰装载。