jpa - 目标/来源和拥有/不拥有实体

标签 jpa orm

我对这个命名约定有点困惑。
它们之间有什么区别,目标/源可以与拥有/不拥有互换吗?

特别是一件事很难理解:

“JPA 中 OneToOne 和 ManyToOne 关系之间的主要区别在于,ManyToOne 始终包含从源对象表到目标对象表的外键,而作为 OneToOne 关系,外键可能位于源对象表中对象的表或目标对象的表 "

JPA 维基书籍

我无法想象在一对一的情况下这种情况

最佳答案

它们之间的差异有点令人困惑。你应该多练习才能很好地理解。

首先,您应该了解一些术语:

角色 :在每一种关系中,都有两个相互关联的实体,每个实体都被称为在关系中扮演一个角色。

方向 :关系可以是单向的或双向的。例如,一个人的地址通常是单向的,而从事项目的员工通常是双向的。我们将研究如何在提出数据模型时识别和定义方向。

为了完全建立关系,必须有一种方法来创建、删除和维护它们。完成此操作的基本方法是由具有关系属性的实体以将其标识为扮演关系的其他角色的方式引用其相关实体。通常情况下,另一个实体反过来具有指向原始实体的属性。当每个实体指向另一个实体时,这种关系是双向的。如果只有一个实体具有指向另一个实体的指针,则称该关系是单向的。从员工到他们所从事的项目的关系将是双向的。员工应该知道它的项目,项目应该指向从事它的员工。此处显示了这种关系的 UML 模型。双向箭头表示关系的双向性(形成本书>> Pro JPA 2)

enter image description here

然后潜入这个 link

我只想评论链接,但我需要 50 声望

关于jpa - 目标/来源和拥有/不拥有实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32115210/

相关文章:

php - Symfony/Doctrine : How to reduce the num of SELECT-queries?(多级关联实体;twig + jsonSerialize())

java - hibernate 违规错误

orm - Clojure - 处理数据库持久性的惯用方法

java - Spring Batch 无法打开 JPA EntityManager 进行事务;嵌套异常是 java.lang.IllegalStateException : Transaction already active

hibernate - 必须在调用 save() 之前手动分配此类的 id

CakePHP hasOne/belongsTo 模型关系

java - 从数据库中删除孤立的实体

java - Hibernate 5.2.10 DDL 自动更新到 AWS RDS (MySql 5.6.10a) 创建 TINYBLOB for Instant

java - 在 JPA 中加入命名查询

java - PersistenceUnitUtil 中 isLoaded(Object) 方法的用法