可嵌入类的映射实体
Posted
技术标签:
【中文标题】可嵌入类的映射实体【英文标题】:Map entity for embeddable class 【发布时间】:2014-10-15 09:46:12 【问题描述】:我写了一个 Team 实体和一个 Player 实体。
一支球队有两名球员。
如何在 Hibernate 中进行映射。
通过使“玩家”成为一个可嵌入实体类并将其嵌入到“团队”类中两次是我认为使用的一种方式。然后将如何映射关系。 OneToOne 还是其他方式?
【问题讨论】:
【参考方案1】:Team
和 Player
应被视为 2 个不同的实体,您不能在 Team
中嵌入 Player
。
使用可嵌入组件时可以浏览hibernate文档:
5.1.5. Embedded objects (aka components)
可嵌入对象(或组件)是具有以下属性的对象 映射到与拥有实体的表相同的表。组件可以, 依次声明自己的属性、组件或集合
从逻辑上讲,一个团队可以有很多玩家,所以你需要一对多的关系。
请参阅7.2.2.1. Lists 部分下的文档以了解如何进行映射。
【讨论】:
我该如何处理检索。 ***.com/questions/26399709/…【参考方案2】:您需要团队类中的玩家集合,并且必须以 hibernate 文档中描述的任何方式(包、集合、列表或其他任何方式)将其映射为一对多。
不要创建具有两个 Player 属性的 Team 类!
此外,当创建可选的一对一关系时(在数据库中没有外键关系,因此可以使用孤立引用),使用一对多集合(没有对象或只有一个对象)可能会很有用一对一,用于延迟加载。
【讨论】:
你知道如何实现***.com/questions/26399709/…以上是关于可嵌入类的映射实体的主要内容,如果未能解决你的问题,请参考以下文章