首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >TypeORM实体继承ManyToOne关系

TypeORM实体继承ManyToOne关系
EN

Stack Overflow用户
提问于 2019-02-28 19:06:11
回答 1查看 2.7K关注 0票数 9

我在Node.JS中使用TypeORM,并希望使用实体继承来实现BaseRecord:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export abstract class BaseRecord {
  @CreateDateColumn({type: 'timestamp'})
  public created_at: Date;

  @UpdateDateColumn({type: 'timestamp'})
  public updated_at: Date;

  @ManyToOne(type => User, user => user.records_created)
  public created_by: User

  @ManyToOne(type => User, user => user.records_updated)
  public updated_by: User
}

我想通过它来扩展其他实体。当删除@ManyToOne关系时,这将按预期工作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Entity()
export class Address extends BaseRecord {
  @PrimaryGeneratedColumn()
  public id: number;

  @Column({ nullable: true, type: "text" })
  public alias: string;

  @Column({ type: "text" })
  public street_1: string;

  @Column({ nullable: true, type: "text" })
  public street_2: string;

  @Column({ type: "text" })
  public city: string;

  @Column({ type: "text" })
  public state: string;

  @Column({ type: "text" })
  public zip_code: string;

  @Column(type => GeoLocation)
  public geo_location: GeoLocation
}

有没有人遇到过这个或继承实体并拥有ManyToOne关系的方法?

EN

回答 1

Stack Overflow用户

发布于 2019-11-29 02:42:41

我建议在Embedded Entity中使用组合而不是继承

嵌入列是接受具有自己的列的类并将这些列合并到当前实体的数据库表中的列。

您可以根据需要在嵌入式类中使用任意数量的列(或关系)。您甚至可以在嵌入式类中嵌入嵌套的列。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import {Column} from "typeorm";

export class Assigned {
    @ManyToOne(type => User, user => user.records_created)
    public created_by: User

    @ManyToOne(type => User, user => user.records_updated)
    public updated_by: User
}

export class Dated {
    @CreateDateColumn({type: 'timestamp'})
    public created_at: Date;

    @UpdateDateColumn({type: 'timestamp'})
    public updated_at: Date;
}

然后使用它

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import {Entity, PrimaryGeneratedColumn, Column} from "typeorm";
import {Assigned} from "./Assigned";
import {Dated} from "./Dated";

@Entity()
export class Address extends BaseRecord {
  // ...Other columns

  @Column(type => Assigned)
  assigned: Assigned;

  @Column(type => Dated)
  dated: Dated;
}

您可以根据需要在嵌入式类中使用任意数量的列(或关系)。您甚至可以在嵌入式类中嵌入嵌套的列。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54932600

复制
相关文章
node 数据库ORM框架TypeORM入门
TypeORM是一个采用TypeScript编写的用于Node.js的优秀ORM框架,支持使用TypeScript或Javascript(ES5, ES6, ES7)开发。 目标是保持支持最新的Javascript特性来帮助开发各种用到数据库的应用 – 不管是轻应用还是企业级的。
javascript.shop
2019/09/04
8.9K0
【译】Nodejs最好的ORM - TypeORM
TypeORM github: https://github.com/typeorm/typeorm 这篇译文是从TypeORM github上的使用说明上翻译过来的,已经提交PR并merge到库中
用户1147588
2018/01/04
19.5K0
20. 精读《Nestjs》
Nestjs 是我见过的,将 Typescript 与 Nodejs Framework 结合的最好的例子。
黄子毅
2022/03/14
4K0
20. 精读《Nestjs》
基于 Nest.js+TypeORM 实战,项目已开源,推荐!
这篇文章是上篇实现登录、注册的后续, 本来是和上一篇文章写在一起的, 考虑篇幅问题,就拆了一个下篇出来。
coder_koala
2022/03/24
11.2K1
基于 Nest.js+TypeORM 实战,项目已开源,推荐!
Hibernate实体关系映射
上一篇文章我们学习了Hibernate的框架搭建,并且完成了单表的CRUD操作,今天我们来学习Hibernate中的多表关联。
南风
2019/04/22
1.1K0
Hibernate实体关系映射
实体-联系图(ER图)_实体关系图
我们通常用实体、联系和属性这三个概念来理解现实问题,因此ER模型比较接近人的思维方式。此外,ER模型用简单的图形符号表达系统分析员对问题域的理解,不熟悉计算机技术的用户也能理解它,因此,ER模型可以作为用户与分析员之间有效的交流工具。
全栈程序员站长
2022/09/29
2.3K0
实体-联系图(ER图)_实体关系图
使用 NextJS 和 TailwindCSS 重构我的个人博客
这是笔者第三次重构博客,虽然博客应用是最简单的应用,但学习新技术何不从重构博客开始?
狂奔滴小马
2021/11/15
2.7K0
使用 NextJS 和 TailwindCSS 重构我的个人博客
使用 NextJS 和 TailwindCSS 重构我的博客
这是笔者第三次重构博客,虽然博客应用是最简单的应用,但学习新技术何不从重构博客开始?
狂奔滴小马
2022/03/29
2.4K0
使用 NextJS 和 TailwindCSS 重构我的博客
Hibernate映射继承关系
在Hibernate中,继承关系是面向对象编程中常见的一个概念,主要涉及到父类与子类之间的关系。在实际开发过程中,我们有时候需要将继承关系映射到数据库中,以便进行数据操作。在Hibernate中,继承关系的映射可以使用三种方式,分别是单表继承、多表继承和一对一继承。
堕落飞鸟
2023/05/16
5390
【C++】继承 ① ( 面向对象特点 | 类之间的关系 | 单继承与多继承 | 继承关系特性 )
本篇博客开始 讲解 IS-A 类关系 中的 继承关系 ( 泛化关系 Generalization ) ;
韩曙亮
2023/10/15
2210
ORM中的继承关系映射全解——单表继承体系、一实体一具体表、一实体一扩展表、接口映射
实体继承是基于OO和关系型数据库软件系统设计中的一个重要主题。本文通过基于NBear的实例解析ORM中的实体继承体系映射的方方面面。 本文涉及的内容包括: 1. 单表继承体系 2. 一实体一具体表 3. 一实体一扩展表 4. 接口实现映射vs基类继承映射 1. 单表继承体系 所谓单表继承体系就是用一张数据库表存储整个继承体系中的所有实体的数据。单表继承体系适合那种继承体系中实体数目相对较少,总记录数相对较少,子类对父类的属性扩展也相对较少的情形。  单表继承体系优点是读/写继承体系中的每个实体的数据,都只需
菩提树下的杨过
2018/01/22
2.5K0
模型继承与对应关系
在一对多关系基础上的父表中使用backref函数,并添加uselist参数来表示一对一关系
星哥玩云
2022/09/14
1.4K0
「数据架构」实体关系模型溯源
实体-关系模型(或ER模型)描述特定知识领域中相关的事物。基本的ER模型由实体类型(对感兴趣的事物进行分类)和指定实体之间可能存在的关系(那些实体类型的实例)组成。
架构师研究会
2019/12/24
1.6K0
什么是实体关系图(ERD)?
实体 - 关系(ER)图(也称为ERD或ER模型)是Peter最初在1976年提出的经典且流行的概念数据模型。它是系统内不同实体的视觉表示以及它们如何相互关联。实体关系图广泛用于设计关系数据库。ER模式中的实体成为表,属性和转换的数据库模式。由于它们可用于可视化数据库表及其关系,因此它通常也用于数据库故障排除。
Warren2Lynch
2018/07/23
6.5K0
什么是实体关系图(ERD)?
ER图转关系模型_实体关系图变关系模型
将每个实体类型转换成一个关系模式,实体的 属性 即为关系的 属性,实体标识符即为关系的键。
全栈程序员站长
2022/11/15
2.7K0
ER图转关系模型_实体关系图变关系模型
Typeorm_Type-C
TypeORM 是一个ORM (opens new window)框架,它可以运行在 NodeJS、Browser、Cordova、PhoneGap、Ionic、React Native、Expo 和 Electron 平台上,可以与 TypeScript 和 JavaScript (ES5,ES6,ES7,ES8)一起使用。 它的目标是始终支持最新的 JavaScript 特性并提供额外的特性以帮助你开发任何使用数据库的(不管是只有几张表的小型应用还是拥有多数据库的大型企业应用)应用程序。
全栈程序员站长
2022/09/20
2K0
在Entity Framework中使用存储过程(二):具有继承关系实体的存储过程如何定义?
在《实现存储过程的自动映射》中,我通过基于T4的代码生成实现了CUD存储过程的自动映射。由于映射的都是基于数据表结构的标准的存储过程,所以它们适合概念模型和存储模型结构相同的场景。如果两种模型存在差异,在进行数据更新操作的时候就会出错。本篇文章主要介绍当概念模型中具有继承关系的两个实体映射到数据库关联的两个表,如何使用存储过程。 目录 一、创建具有继承关系的实体 二、基于继承关系实体的查询与更新 三、映射标准的CUD存储过程 四、修正存储过程 一、创建
蒋金楠
2018/02/07
1.5K0
在Entity Framework中使用存储过程(二):具有继承关系实体的存储过程如何定义?
C#的继承_继承关系中的被继承人
继承:是面向对象程序设计中最重要的概念之一。继承允许我们根据一个类来定义另一个类,这使得创建和维护应用程序变得更容易。同时也有利于重用代码和节省开发时间。当创建一个类时,不需要完全重新编写新的数据成员和成员函数,只需要设计一个新的类,继承了已有的类的成员即可。这个已有的类被称为的基类/父类,这个新的类被称为派生类/子类。
全栈程序员站长
2022/09/30
5820
C#的继承_继承关系中的被继承人
使用Bert完成实体之间关系抽取
Source Text: 《在夏天冬眠》是容祖儿演唱的一首歌曲,收录于专辑《独照》中
机器学习AI算法工程
2022/02/28
1.8K0
使用Bert完成实体之间关系抽取
全面理解Java中继承关系
继承是面向对象思想的三大特性之一,使类与类之间产生特殊 - 一般的关系,即is-a关系。继承是从已有类中派生出新的类,新的类能吸收已有类的属性和方法,并且能拓展新的属性和行为。在Java中使用extends关键字表示继承,语法表示为: class 子类 extends 父类{}子类被称为派生类,父类又被称为超类。子类继承父类,表名子类是一种特殊的父类,子类拥有父类的属性和方法,并且子类可以拓展具有父类所没有的一些属性和方法。子类即是不扩展父类,也能维持拥有父类的操作。
用户7886150
2021/01/30
1.5K0

相似问题

使用NestJS/TypeORM努力保存OneToMany/ManyToOne关系中的实体

18

NestJS - TypeORM - ManyToOne实体未定义

24

TypeOrm OneToMany/ManyToOne与PostgresSQL的关系

19

TypeORM (MySQL)未能创建ManyToOne / OneToMany关系

116

无法加载OneToMany-ManyToOne关系TypeORM

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文