可嵌入类的映射实体

Posted

技术标签:

【中文标题】可嵌入类的映射实体【英文标题】:Map entity for embeddable class 【发布时间】:2014-10-15 09:46:12 【问题描述】:

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

一支球队有两名球员。

如何在 Hibernate 中进行映射。

通过使“玩家”成为一个可嵌入实体类并将其嵌入到“团队”类中两次是我认为使用的一种方式。然后将如何映射关系。 OneToOne 还是其他方式?

【问题讨论】:

【参考方案1】:

TeamPlayer 应被视为 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/…

以上是关于可嵌入类的映射实体的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式密钥的 JPA 实体映射

学习Spring-Data-Jpa---可嵌入对象和元素集合的使用

从一个视图映射具有嵌入式List的实体

在 iOS Core Data 中映射嵌入对象

hibernate注解

JavaEE Tutorials - Java持久化API介绍