`
princex
  • 浏览: 6180 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

在ORM中,many-to-one和one-to-many

阅读更多
在ORM中,one-to-one和many-to-one都是最简单的(关键就是最后的那个xx-to-one),他们都表示以下的类对应关系:
public class PendingOrder {
  private Address deliveryAddress
  private Restaurant restaurant;
}

PendingOrder 对应的表中只要增加一列来存放Address 或者Restaurant 对应的外键即可.

另外,记录一下pojo in action中对one-to-many的解释(on page 134):
A relationship called A-B is one-to-many when each B
object is only referenced by a single A object.

public class PendingOrder {
private List lineItems; /* List<PendingOrderLineItem> */

}
A one-to-many relationship is usually mapped using a foreign key in the referenced
class’s table.

We can, for instance, map the PendingOrder lineItems field
using a foreign key in the PENDING_ORDER_LINE_ITEM table:
CREATE TABLE PENDING_ORDER_LINE_ITEM (

PENDING_ORDER_ID NUMBER(10)
LINE_ITEM_INDEX NUMBER(10) NOT NULL,
CONSTRAINT P_ORD_LINE_ITEM_ORDER_FK
FOREIGN KEY(PENDING_ORDER_ID)
REFERENCES PENDING_ORDER(PENDING_ORDER_ID)

The PENDING_ORDER_LINE_ITEM table has a PENDING_ORDER_ID column, which is
a foreign key to the PENDING_ORDER table.

下面这段话很精辟,同样来自pojo in action(on page 135):
One-to-many relationships are often whole-part relationships, which are relationships
where the part cannot exist independently of the whole. A part must be
deleted if either the whole is deleted or the part is no longer associated with the
whole. Examples of whole-part relationships in the Food to Go domain model are
PendingOrder-PendingOrderLineItem and Restaurant-MenuItem. A line item or
menu item cannot exist independently of its PendingOrder or Restaurant. As I
describe later, it is extremely useful if an ORM framework directly supports wholepart
relationships.

感觉pojo in action 对各种ORM的关系说明的还是很清晰的,但是具体怎么映射还是要看hibernate in action.
分享到:
评论

相关推荐

    hibernate many-to-one(多对一)及 cascade(级联).doc

    在Hibernate中,可以通过 `&lt;many-to-one&gt;` 或者 `&lt;one-to-many&gt;` 标签中的 `cascade` 属性来指定这种行为。 #### 代码示例解析 在提供的代码示例中,`&lt;many-to-one&gt;` 标签中包含了 `cascade` 属性的注释示例,但是...

    Hibernate Mapping Many-to-One 实例 内附源代码及附件下载

    通过研究这个例子,你可以更深入地理解如何在实际开发中设置和使用Many-to-One关系。 总的来说,Hibernate的Many-to-One映射简化了数据库关系的处理,使得开发者可以专注于业务逻辑,而不是繁琐的SQL操作。通过这个...

    Hibernate one to many(many to one) 配置

    标题"Hibernate one to many(many to one) 配置"涉及到的是关系型数据库在Java中的持久化框架Hibernate中的两种关联映射关系:一对一(One-to-One)和多对一(Many-to-One)。在数据库设计中,这种关系很常见,例如...

    hibernate学习5之one-to-many双向关联.docx

    在配置双向一对多关联时,我们通常在"多"一端(这里是`Student`)的集合属性上使用`&lt;many-to-one&gt;`标签,将`Classes`对象映射到数据库中的外键。同时,在"一"端(`Classes`)使用`&lt;set&gt;`标签,表示班级可以包含多个...

    day36 07-Hibernate抓取策略:many-to-one上的抓取策略

    在提供的文件"hibernate_day03"中,可能包含相关的代码示例和更深入的解释,通过阅读和实践这些内容,你可以更好地掌握Hibernate的抓取策略,特别是对于"many-to-one"关系的应用。记住,理论知识固然重要,但实践...

    Hibernate应用例子many-to-many

    本示例将详细讲解如何在Hibernate中实现多对多(many-to-many)的关系映射。 在数据库设计中,多对多关系是指两个实体之间存在多个关联,比如学生和课程的关系,一个学生可以选修多门课程,一门课程也可以被多个...

    Hibernate one-to-many-annotation

    在Hibernate中,`one-to-many`关系是常见的实体间关系之一,表示一个实体可以与多个其他实体相关联。本文将深入探讨`Hibernate one-to-many`注解的使用和实现细节。 ### 一、`@OneToMany`注解概述 `@OneToMany`...

    hibernate 关联映射(一) many to one

    在数据库中,这通常表现为一对多(One-to-Many)的关系,但在对象模型中,由于我们是从一个对象的角度出发,所以称为Many-to-One。 在Hibernate中实现Many-to-One关联,我们需要在实体类中定义对应的属性,并通过...

    hiberante - one to many - update

    标题中的“hibernate - one to many - update”指的是Hibernate框架中关于一对一(One-to-Many)关系映射和更新操作的知识点。在Java开发中,Hibernate是一个流行的对象关系映射(ORM)工具,它允许开发者用面向对象...

    Hibernate实现many-to-many的映射关系

    3. 在对应的映射文件中,使用`&lt;set&gt;`和`&lt;one-to-many&gt;`或`&lt;many-to-one&gt;`元素配置映射关系。 4. 如有必要,可以考虑将多对多关系转换为一对多,以优化性能和操作性。 理解并熟练掌握这些概念和实践,将有助于在使用...

    NHibernate One-to-Many一对多映射-xxlinux_com

    在数据库世界中,一对多(One-to-Many)关系是一种常见的关联类型,其中一个表(父表)可以与多个其他表(子表)相关联。在NHibernate中,配置这种映射关系对于理解和使用ORM至关重要。 一对多关系意味着一个实体...

    Hibernate之第3解之-hibernate_hibernate_many2one_1

    本篇将重点探讨Hibernate中的Many-to-One关系映射,帮助开发者更深入地理解和运用这一关键特性。 Many-to-One关系是现实世界中常见的关联类型,一个实体可能对应另一个实体的多个实例,例如,一个员工可以属于一个...

    django ORM机制的总结

    可以使用Many-to-many关系来描述多对多关系。 One-to-one关系 可以使用One-to-one关系来描述一对一关系。 Django ORM机制提供了一个强大且灵活的对象关系映射系统,允许开发者使用Python代码来操作数据库,实现了...

    hb-04-one-to-many-uni

    标题“hb-04-one-to-many-uni”和描述中的信息看似简洁,但结合标签“Java”,我们可以推测这是一个关于Java编程中的一个特定主题——一对一(One-to-One)、一对多(One-to-Many)关系的统一处理(uni)的示例项目...

    Node.js 的 ORM 模块 Waterline-3课时 课件源码.zip

    Waterline 支持多种关联类型,如一对一(One-to-One)、一对多(One-to-Many)和多对多(Many-to-Many)。关联允许你在模型之间建立关系,方便地处理复杂的查询。 例如,创建一个 `Profile` 与 `User` 一对一关联:...

    hibernate one-to-many 单/双向关联映射配置心得

    本文主要关注Hibernate中的一个核心概念——一对一(One-to-One)、一对多(One-to-Many)和多对一(Many-to-One)关联映射,特别是关于“一到多”单向和双向关联映射的配置心得。 首先,让我们了解“一到多”关联...

    NHibernate三种关系配置示例

    在这个示例中,我们将深入探讨 NHibernate 支持的三种主要关系映射:一对一(One-to-One)、一对多(One-to-Many)和多对多(Many-to-Many),并了解如何通过配置实现它们。 1. 一对一关系(One-to-One) 在一对一...

    hibernate的关联映射

    配置时,可以在`&lt;many-to-one&gt;`标签中设置`unique="true"`。 2. **一对多关联映射** - **单向关联**:在多的一端(如Student)添加一个外键指向一的一端(如Classes)。例如: ```xml &lt;!-- Student映射 --&gt; ...

    hibernate_many2one

    在配置文件中,我们可以通过`&lt;many-to-one&gt;`元素来声明这种关系。如题目中所示: ```xml &lt;many-to-one name="group" column="groupid"/&gt; ``` 这里的`name`属性定义了目标实体的属性名称,`column`属性则指定了存储...

Global site tag (gtag.js) - Google Analytics