`
wangxb_st
  • 浏览: 4914 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

单表继承STI实现一对多关联

阅读更多
代码如下:

create_table :organizations do |t|
  t.string    :type, :name
  t.integer   :priority, :organization_id
  t.timestamps
end



class Organization < ActiveRecord::Base
end

class Headquarter < Organization
  has_many :filiales, :foreign_key => :organization_id
end

class Filiale < Organization
  belongs_to :headquarter, :foreign_key => :organization_id
end


这样同个表中继承出来两个类也可以实现一对多的关系,和两个表的做法完全相同。
分享到:
评论

相关推荐

    使用jpa映射关联和继承

    2. **一对多(OneToMany)映射**:一个实体对象可以对应多个子对象。使用`@OneToMany`注解,可以设置`mappedBy`属性,表示关联的反向引用。还可以设置`fetch`策略(EAGER或LAZY),控制关联数据是否在加载主体对象时...

    hibernate关联映射实例

    1. **一对多关联映射**: 在现实世界中,一个实体可能会与多个其他实体相关联,比如一个用户可以有多个订单。在Hibernate中,我们通过`@OneToMany`注解来实现这种关系。这个注解通常放在拥有众多子项的一方,配置`...

    JPA 实现继承关系

    反之,如果子类很多,且它们之间的属性差异大,那么联合表或表分区继承可能会更合适。 在实现继承关系时,需要注意以下几点: - **字段注解**:确保正确地在字段上使用`@Column`、`@Id`、`@GeneratedValue`等注解...

    Laravel开发-eloquent-sti .zip.zip

    Eloquent支持CRUD(创建、读取、更新、删除)操作,以及关联查询,如一对一、一对多、多对多等。 STI是面向对象设计中的一种策略,允许我们在同一个表中存储不同类型的对象。在Laravel中,通过Eloquent实现STI,...

    jpa/hibernate继承注解

    STI可能导致表膨胀,而TPC可能导致更多的JOIN操作。选择合适的继承策略应考虑数据量、查询复杂性和性能需求。 8. **工具支持** 使用IDE如IntelliJ IDEA或Eclipse,可以利用其强大的代码提示和生成功能,方便地处理...

    Hib继承关系的映射

    在给定的域模型中,`Company` 类与 `Employee` 类之间存在一对多的双向关联关系,这意味着一个公司可以有多名员工,但一个员工只能属于一个公司。`Employee` 类是抽象类,不可实例化,拥有两个具体子类:`...

    Laravel开发-moloquent-inheritance

    Moloquent继承是针对Moloquent模型的一个特性,允许开发者在MongoDB中实现单表继承(Single Table Inheritance, STI),这是一种面向对象的设计模式,用于处理多个相关类共享同一数据库表的情况。 单表继承的核心...

    Hibernate Annotation 学习笔记

    - **一对多关联 (@OneToMany)**: 表示一个实体可以关联多个其他实体。`@JoinColumn`用于指定外键所在的列,`fetch = FetchType.LAZY`控制加载策略,可选择懒加载或立即加载。 - **多对一关联 (@ManyToOne)**: 反向...

    Laravel开发-eloquent-single-table-inheritance

    单表继承是一种设计模式,它允许在同一个数据库表中存储不同类型的对象,通过一个特定的字段来区分这些对象的类型。在Laravel中,这种模式通常通过模型类和数据库中的`type`字段来实现。下面我们将详细讨论STI的工作...

    将对象映射到关系数据库

    - **一对多映射**:通常使用外键在子表中引用父表。 - **多对多映射**:需要通过一个关联表来实现。 - **如何实现关系数据库中的关系**:利用外键约束确保数据一致性。 - **关系映射**:通过选择合适的关系类型和...

    hibernate_reference

    - **4.2 实现继承**:利用Hibernate支持的继承策略,如单表继承(Single Table Inheritance, STI)、多表继承(Class Table Inheritance, CTI)等,实现继承关系的映射。 - **4.3 实现equals()和hashCode()方法**:...

    java-persistence-with-hibernate:Java Persistence和Hibernate书籍中的代码示例

    6. **Inheritance Mapping**:Hibernate支持单表继承(Single Table Inheritance, STI)、联合继承(Joined Table Inheritance, JTI)和表格分片继承(Concrete Table Inheritance, CTI)。`@Inheritance`和`@...

Global site tag (gtag.js) - Google Analytics