2

我一直根据关系背后的逻辑来使用@OneToOneand@ManyToOne关系——如果每一端只有一个实体,那么它是一对一的。如果另一侧的实体在这一侧可能有多个对应的实体,则它是多对一的。即一个学生只有一本学生书,每本学生书都属于一个学生(一对一)

但是,我刚刚@OneToOne在我们的代码库中看到了一些实际上并不是一对一的注释。不知何故,这已经工作了很长一段时间,我想知道 hibernate 是否以不同的方式对待这些注释?

@OneToMany如果@OneToOne在实体上,它可能不允许在另一侧进行映射,但除此之外?

4

2 回答 2

0

请查看以下链接以获取有关 hibernate 中支持的映射关联的全面说明。

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/associations.html

于 2012-10-12T07:18:28.797 回答
0

我不知道 Hibernate 是如何工作的,但是作为 JPA 提供者的 EclipseLink 并没有区分这两者。大多数应用程序也没有;从技术上讲,OneToOne 应该对外键有唯一的约束,但我从未见过使用过的,许多应用程序都使用它并允许重用目标。

JPA 规范没有对 ManyToOne 行为施加任何额外的限制,所以我不会在任何提供者中依赖它。我只使用过ManyToOne 作为指向OneToMany 关系的反向指针——如果没有OneToMany,我只使用OneToOne。

于 2012-10-12T14:19:11.737 回答