nestjs 全栈进阶--typeorm 一对一

news2024/11/15 15:32:07

1. 介绍

在 TypeORM 中,一对一(One-to-One)关系是一种数据库关系,其中一个表中的每一行只与另一个表中的一行相关联。比如用户和身份证

2. 准备

我们还是将就上节课的项目,不过我们需要把数据库删除了

右键,选择删除

再把之前的代码清除下

然后我们在新建一个实体

现在我们有了两个实体,但是他们之间还没有任何关系,对吧?所以我们还需要给他们建立关系,如图,我们可以通过@JoinColumn和@OneToOne装饰器来指定

我们执行pnpm start

3. crud

3.1. 增

pnpm start

可以看到后面插入 idCard 的时候,已经有 userId 了

可以看到的是,我们上面的保存是不是分别保存的user和idcard,那他们既然都关联了,那我们是不是可以让他自动按照关联关系来保存,当然可以,我们可以在 @OneToOne 那里指定 cascade 为 true

pnpm start

可以看到,他还是先插入user,在生成idcard

3.2. 改

很简单我们在save的时候带上id,就行了

如果我们只有idcard带了id

他就会新增一个user,修改我们的idcard

3.3. 查

我们来试试我们的find查询

可以看到他只查出了我们的idcard但是没关联出user,如果我们想一起查出来,我们可以声明下 relations 关联查询

还可以写成

3.4. 删

删idcard

删user, 我们来试试删id为2 的user,因为这个是与我们的idcard还有关联关系的对吧,我们设置了外键的 onDelete 是 cascade,我们看看会有什么效果

首先,我们可以看到user表 id为2的已经被删除了

然后我们可以看到idcard中有关联的也删除了

3.5. 通过user查idcard

我们是不是很有可能查用户,并查出他的身份证,这时候我们就需要在user实体中,也建立一个关联关系

这里我们不需要@JoinColumn这个装饰器,因为在idcard中有个外键关联了,所以这里我们只需要通过@OneToOne装饰器 第二个参数告诉 typeorm,外键是另一个 Entity 的哪个属性就行了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2038657.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[CSS3]2D与3D变换技术详解

文章目录 2D变换(2D Transform)3D变换(3D Transform)结语 CSS3中的2D变换与3D变换是指通过transform属性对HTML元素进行几何操作,使其在二维或三维空间中进行移动、旋转、缩放和倾斜等变换。这些变换为前端开发者提供了…

秒通多语种!2024年超实用的4款翻译在线工具,真心好用

互联网时代让沟通变得没有界限。不论是和邻居闲聊家常,还是与远在海外的朋友畅谈,现在都非常容易。特别是对于正在学习外语的人来说,在线翻译工具就像是超级英雄的披风一样重要。我研究了很多资料,找到了几款性价比非常高的翻译在…

Java虚拟机:类的加载机制

大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 034 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进…

【BUU】[Dest0g3 520迎新赛]Really Easy SQL

2024/8/14 [Dest0g3 520迎新赛]Really Easy SQL 题目标题说明是SQL注入 题目首页 页面title显示是钓鱼站点。 钓鱼站点主要为将我们的输入信息保存在数据库。后台应该是插入语句。 这里无论输入什么都显示密码错误, 只能尝试盲注,基于时间的盲注, 这里经过测试p…

OPC DAY-上海场提前预告:Softing带您探索“智能工厂中的OPC应用”

(图片来源于:OPC基金会官网) 时间:2024年9月25日 14:00-14:30 | OPC DAY-上海站 地点:上海国家会展中心-5.1H M5-03会议室 2024年9月24-28日,第二十四届中国国际工业博览会将于国家会展中心(上…

Linux 中的同步机制

代码基于:Kernel 6.6 临界资源:指哪些在同一时刻只允许被一个线程访问的软件或硬件资源。这种资源的特点是,如果有线程正在使用,其他进程必须等待直到该线程释放资源。 临界区:指在每个线程中访问临界资源的那段代码。…

vue3结合海康WEB开发包,开发web在线预览视频

我们这里选择V3.3版本 文档地址:https://open.hikvision.com/download/5cda567cf47ae80dd41a54b3?type20&id4c945d18fa5f49638ce517ec32e24e24 解压过后,会有三个文件夹 在docs中,点开Demo使用说明,按照流程先测试下&…

赋能基层,融合创新:EasyCVR视频汇聚平台构建平安城市视频共享系统

一、雪亮工程建设的意义 雪亮工程的核心在于通过高清视频监控、环境监测和智能预警等先进技术手段,构建一个高效、智能、安全、便捷的社会安全防控体系。这一工程的建设不仅代表了现代化科技手段在城市治安管理中的应用,更是提升社会安全保障能力、推动…

树形结构查找(B树、B+树)

平衡树结构的树高为 O(logn) ,平衡树结构包括两种平衡二叉树结构(分别为 AVL 树和 RBT)以及一种树结构(B-Tree,又称 B 树,它的度大于 2 )。AVL 树和 RBT 适合内部存储的应用,而 B 树…

CompreFace Study

系列文章目录 第一章 CompreFace Installation 第二章 Face verification POC 文章目录 系列文章目录前言一、What is the ComreFace?二、How to install the CompreFace? 1.On Linux for CompreFace 1.2.02.Troubleshooting总结 前言 此文旨在记录学习CompreF…

萤石取流播放失败自助排障及常见错误码解决方案

一、在使用播放地址播放时遇到播放失败的情况,可使用排障工具排查具体原因,以下具体介绍排障工具的使用方法 1、在浏览器里打开排障工具,地址:萤石开放平台-提供持续稳定的以音视频为主的全场景、多功能综合性服务 2、在第一行输入…

安全无忧!Windows7全补丁旗舰版:集成所有补丁!

今日,系统之家小编给大家分享集成所有补丁的Windows7旗舰版系统,集成至2023.12所有官方补丁,修复了系统高危漏洞,让大家时刻都能舒心地展开操作。系统基于微软 Windows 7 2009 SP1 旗舰版进行离线制作,全新升级的优化方…

本地环境VMware使用代理解决 Docker 镜像拉取问题

引言 本文将分享我在 Windows 10 环境下,通过 VMware 运行的 CentOS 7.8 虚拟机中配置 Docker 代理,成功解决了镜像拉取问题的经验。 问题描述 在尝试启动一个依赖 Docker 的 GitHub 项目时,拉取 Docker 镜像的失败。尝试配置了几个国内源…

(附源码)基于springboot的智慧社区管理系统-计算机毕设 06797

基于springboot的智慧社区管理系统 摘 要 SpringBoot智慧社区管理系统是一款基于SpringBoot框架开发的智能化社区管理软件,致力于提升社区管理效率和服务质量。该系统涵盖了社区入住管理、物业费管理、公共设施预约等功能,支持在线报修、信息发布、社区活…

Java语言程序设计——篇十三(2)

🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿 欢迎大家:这里是我的学习笔记、总结知识的地方,喜欢的话请三连,有问题可以私信🌳🌳&…

【运维】报错Resource averaged_perceptron_tagger_eng not found.

文章目录 报错信息解决报错信息 able of handling various complex tasks. Please report the progress of this project to the team members.> ========================<

回溯算法探索篇Ⅲ

Leetcode93——复原IP地址 题目描述&#xff1a; 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 . 分隔。 例如&#xff1a;"0.1.2.201" 和 "192.168.1.1" 是…

PyTorch — 初学者教程

一、说明 在本文中,我将编译 PyTorch 的初学者教程。本教程大量使用了官方 PyTorch 教程中的材料。

Java SE--IO流

一.File类型 如果我们想在程序中操作或者描述一个文件夹或文件&#xff0c;可以使用File类型 File类型在java.io包下 File可以新建&#xff0c;删除&#xff0c;移动&#xff0c;修改&#xff0c;重命名文件夹&#xff0c;也可以对文件或者文件夹的属性进行访问&#xff1b;…

嵌入式软件--模电基础 DAY 2

强电和弱电&#xff0c;简单一点是以电死人为标准的&#xff0c;交流电36伏特以下&#xff0c;直流电24V以下&#xff0c;为安全电压&#xff0c;是为弱电&#xff0c;反则强电。 市电进入家庭&#xff0c;连接你的电脑&#xff0c;220V的电压为什么没有让你感到危险&#xff…