无法根据TypeOrm中的外键过滤数据

2024-05-30

我使用 Nest Js、PostgresQl 和 Typeorm。 我在 typeorm 中有这两个实体:

export class Meta {
    @PrimaryGeneratedColumn({name: "metaId"})
    metaId: number;

    @Column({nullable: true})
    name: string;

    @OneToMany(() => TablesEntity, table => table.metaId, {eager: true, cascade: true})
    metaTables: TablesEntity[];
}
//
export class TablesEntity {
    @PrimaryGeneratedColumn()
    id: number;

    @ManyToOne(() => Meta, meta => meta.metaTables)
    @JoinColumn({name: "metaId"})
    metaId: Meta;
}

现在我想根据过滤值获取所有数据:

const meta = await this.metaRepository.findOne({
  where: {
    metaId: metaId,
    metaTables: [{
        status: Not('white')
    }]
  },
  relations: ["metaTables"]
});

所以我想获取所有不具有状态的数据:“白色”,但我收到错误:No entity column "metaTables" was found.
为什么会出现这个错误以及如何解决?


不幸的是,typeorm 无法处理这些方法中的嵌套查询(findOne, findMany, update etc...),您在上面尝试使用的内容。然而,有几种不同的解决方案,但它们都使用更复杂的方法。

最相似的解决方案是如果您使用find方法,但使用查询生成器的所有参数对其进行配置:

await connection.getRepository(Meta).findOne({
  where: (qb: SelectQueryBuilder<Meta>) => {
    qb.where({
      metaId: metaId,
    }).andWhere("metaTables.status != :status", { status: 'white' });
  },
  join: {
    alias: "meta",
    innerJoin: {
      metaTables: "meta.metaTables",
    },
  },
});

另一种方法是简单地使用查询生成器并构造以下查询:

await connection
  .getRepository(Meta)
  .createQueryBuilder("meta")
  .innerJoin("meta.metaTables", "metaTables")
  .where({ metaId: metaId })
  .andWhere("metaTables.status != :status", { status: "white" })
  .getOne();

然而,还有第三种解决方案,但它仅有效<=0.2.24。该解决方案构建了where以这种方式对象,每个关系过滤器显示为单个字符串,其中列用点连接。这是一个例子:

await connection.getRepository(Meta).findOne({
  where: {
    metaId: metaId,
    "metaTables.status": Not("white"),
  },
  relations: ["metaTables"],
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法根据TypeOrm中的外键过滤数据 的相关文章

  • 使用 React 和 Ant Design 的浮动标签

    对于我的 React 应用程序 我正在尝试构建一个表单浮动标签使用具有不同输入类型的 Antd 模板 仅使用样式使标签浮动 到目前为止 我已经能够将标签放在输入后面 但是当我将转换 转换应用于我的CSS代码时 它似乎根本不起作用 这是我的表
  • 如何在nodejs中处理xhr blob post

    客户端代码 var xhr new XMLHttpRequest xhr open POST frame true xhr send blob 服务器代码 app use bodyParser urlencoded extended fal
  • 尝试附加行谷歌表格API

    我一直在尝试让追加行示例工作几个小时 但没有成功 我没有收到任何错误 但我的电子表格根本没有更新 https developers google com sheets samples writing append values https
  • 使用 NPM 重命名文件

    有没有办法重命名 npm 脚本中的单个文件 我想准备要分发的文件 但我需要将构建的文件命名为与源代码中不同的名称 我尝试过 orn 但这似乎只能在命令行上工作 不能作为 npm 脚本工作 我特别希望添加跨平台依赖项来完成我的项目 而不是编写
  • 映射警告时反应唯一键

    我对反应还很陌生 我面临着一个无法解决的问题 这是我的反应组件 import React from react import Header from Header import ContestPreview from ContestPrev
  • 在哪里可以找到 firebase-debug.log 以了解模拟器没有完全关闭的原因?

    我在用firebase emulators start启动 firebase 模拟器 当关闭它时 通过Ctrl C 它告诉我它没有正确关闭 我需要咨询firebase debug log无处可寻 我怀疑它应该位于与云函数相关的所有其他内容所
  • Underscore 克隆 Mongoose 对象并删除属性不起作用?

    我正在使用 Mongoose 我想删除 id在将 JSON 响应发送到客户端之前 从 Mongoose 实例获取属性 Example var ui clone userInvite delete ui id console log JSON
  • 为什么 npm install 失败并出现与 node-sass 相关的错误?

    我正在使用我继承的 Rails 应用程序 我正在尝试运行npm install命令但我不断收到errors以下 我尝试跑步npm rebuild node sass正如输出中所建议的 但它没有帮助 我遇到这个问题乌班图16也OS X gt
  • 我无法在项目中使用节点波本威士忌

    我尝试对 scss 文件使用 npm 模块 波本威士忌 我收到以下错误 with function var paths Array prototype slice call arguments return concat apply bou
  • 如何使用PNGJS库从rgb矩阵创建png?

    我无法从此处的文档创建 PNG 文件 编码 https github com niegowski node pngjs https github com niegowski node pngjs 该文档提供了有关操作现有 PNG 的示例 为
  • 无法将环境变量传递给 docker

    我正在尝试使用环境变量运行 docker 映像 但它对我来说不起作用 无论是使用 env list 文件还是通过命令行 docker run p 49160 8080 d appname e FOO foo 来自守护程序的错误响应 OCI
  • nodejs module.js:340 错误: 找不到模块

    我将nodejs安装在C Program Files x86 nodejs 然后我创建了一个 js 文件并将其保存在桌面中 以便在控制台中输出 hello world console log hello world 当我尝试从命令提示符运行
  • 未处理的拒绝 SequelizeValidationError:验证错误:无法在布尔值“true”上创建属性“allow_display_name”

    我已经为nodejs项目安装了sequelize ORM并收到以下错误 未处理的拒绝 SequelizeValidationError 验证错误 无法在布尔值 true 上创建属性 allow display name 在我的模型中 我对有
  • NESTJS AWS Lambda 和 Sequelize 连接池

    由于我已经给出了下面代码片段中提到的池参数 因此是否有必要在每次 lambda 调用后关闭连接 这个 aws lambda 函数应该每分钟触发一次 池参数仅足以关闭连接吗 export const databaseProviders pro
  • Nodejs 的简单 put 请求,无需 Express

    我需要能够将 zip 文件上传到 Brightsign 单元 并考虑创建一个 Rest api 我可以发出 put 请求来发送 zip 文件 但问题是我找到的所有例子都是使用express之类的框架 是否可以在不使用额外框架的情况下在 No
  • 节点持久-NodeJS

    谁详细向我解释了如何操作以下说明 var storage require node persist var account username Morris password test storage initSync storage set
  • Electron Auth0Lock“原始文件://不允许”

    尝试让 auth0 与我的电子应用程序一起使用 当我按照默认教程并尝试使用用户名 密码 身份验证进行身份验证时 锁定失败并显示 403 错误 并响应 不允许使用 Origin file 我还在 auth0 仪表板中客户端设置的允许来源 CO
  • NodeJS 和 PHP (Laravel) 集成用于 Socket.IO 实时聊天

    目前我有一个我写过的网站PHP通过Laravel 框架 我已经使用写了一个实时聊天nodeJS with 套接字IO and Express现在我想做的是将它集成到我已经编写的 Laravel 网站中 问题是聊天必须在主页中 当前由 Lar
  • 如何删除 node_modules - Windows 中的深层嵌套文件夹

    尝试删除后节点模块创建的目录npm install 源文件名大于文件支持的名称 系统 尝试移动到路径名称较短的位置 或者尝试 在尝试此操作之前重命名为较短的名称 I also tried shift delete and still hav
  • Microsoft SQL 数据库的 WebSocket 侦听器

    我目前正在开发一个项目 该项目必须使用 WebSockets 作为将数据传输到客户端的方式 基础设施看起来像这样 客户端 gt Web 服务器 gt Microsoft SQL 数据库 我想最理想的情况应该是这样的 客户端打开一个到服务器的

随机推荐

  • 开放式 WebSocket 连接存在哪些安全问题?

    我正在构建一个使用 websockets 的应用程序 我只允许经过身份验证的用户在登录并被授予会话 ID 后打开与服务器的 Websocket 连接 一旦我与经过身份验证的用户打开了 Websocket 连接 当前 页面 就会保存打开的 W
  • npm WARN 已弃用 [email protected]:改用 uuid 模块

    当我尝试时 npm install g cordova latest总是得到npm 警告已弃用 电子邮件受保护 cdn cgi l email protection 使用 uuid 模块代替 mac 操作系统塞拉利昂 10 12npm v
  • Delphi中AsInteger和Value有什么区别?

    我想知道以下两个与delphi中的数据集相关的语句之间的区别 dsMyDataSet ParamByName ID AsInteger 1122 If ID is integer dsMyDataSet ParamByName ID AsS
  • Python:如何在不知道格式的情况下将字符串转换为日期时间?

    我有一个以字符串形式出现并代表时间的字段 有时是12小时 有时是24小时 可能的值 8 26 08 26am 13 27 是否有一个函数可以通过智能将它们转换为时间格式 选项 1 没有 am 因为它是 24 小时格式 而选项 2 前面有一个
  • WxWidgets自定义事件

    我正在尝试使用自定义事件 in my WxWidgetsC 应用程序 如所描述的here http wiki wxwidgets org Custom Events 22But I don 27t need a whole new even
  • Java如何删除设置了IMMUTABLE位的文件

    正在开发一个 Java 8 项目 我从外部源复制文件 在这些源之一中 文件设置了不可变位标志 In OSX这是这样设置的 sudo chflags schg path to file In Linux chattr i path to fi
  • 使用 Intellij 2017.2 /out 目录构建会重复 /build 目录中的文件

    更新到 Intellij 2017 2 后 构建我的项目会创建一个 out包含生成的源文件和资源文件的目录 这些文件与已包含的文件重复 build并导致duplicate class生成的类的编译器错误 关于 Gradle 或 Intell
  • 如何在同一个

    中设置两种不同的字体大小

    我有一段 HTML 代码 我一直坚持不下去 我怎样才能将这个文本的第一部分的字体大小设置为 20px 以及后面的文本 br 标签字体大小为 15px 或者 如果我做的完全错误 我该如何做而不将它们放在不同的标签中 p Los Santos
  • 调用await后程序退出

    我有一个while loop 应该重复程序直到满足特定条件 在这个循环中我称之为async函数 它为我打印一条消息 这是 简短的 代码 private void InitializeMessageSystem do Do stuff awa
  • ggarrange:合并多个图

    附图来自以下文章 正在使用 ggarrange 合并这些图 http www sthda com english articles 24 ggpubr publication ready plots 81 ggplot2 easy way
  • 向数据集添加行

    我怎样才能创建一个DataSet是手动填写的吗 IE 通过代码或用户输入填写 我想知道如果我需要创建一个所需的步骤DataTable or a DataRow首先 我真的不知道填写步骤DataSet DataSet ds new DataS
  • Angular AOT 和 Rollup - 无法解析“app.module.ngfactory”

    我正在尝试完成 Angular 的 AOT 教程 https angular io docs ts latest cookbook aot compiler html https angular io docs ts latest cook
  • 改进将字符串转换为可读的 url

    以下函数重写包含各种字符的新闻和产品标题的 url 我希望创建的字符串仅包含字母数字值和 但没有结尾 或空格 也没有重复的 下面的函数工作正常 但我想知道是否有任何方法可以将其编写得更简单或更有效 function urlName stri
  • 如何更新 R 中的包?

    我想将一个 R 包升级到已经可用的新版本 我试过 update packages c R2jags 但它什么也没做 控制台上没有输出 没有错误 什么也没有 我使用了相同的语法install packages但也许我做错了什么 我一直在看 u
  • 如何对齐文本和图标可组合项,以便即使文本溢出后它们也能保持在一起?

    我有一个文本和一个图标可组合项 我希望图标粘在可组合项的右侧 这是我的代码 Row verticalAlignment Alignment CenterVertically horizontalArrangement Arrangement
  • 如何在谷歌地图中使用latlng字符串数组绘制多边形

    在我的应用程序中 我有包含 imagview 的 recyclerview 并且该 imageview 通过使用我存储在 sqlite 中的坐标包含静态地图图像 当我单击该图像时 我将该字符串数组格式的坐标传递给其他地图活动 然后使用该字符
  • python Fabric并行池限制

    有 CentOS 6 5和Fabric 1 10 0 我需要通过结构在约 1000 2000 个服务器上运行一些轻量级命令 我在 fabfile py 中的环境是 env parallel True env pool size 500 因此
  • 旧 Android SDK 版本上的 java.lang.NoClassDefFoundError

    我在 Google Play 上发布了我的应用程序的一个版本 今天早上醒来时发现了一些不满意的客户 该应用程序的最新版本集成了对蓝牙低功耗 BTLE 心率监测器的支持 该应用程序在 Android 4 3 和 4 4 上运行良好 但在 4
  • SCons:调用 Makefile 项目的构建

    SCons 提供了 env Command 理论上应该能够调用 配置 and make在 Makefile 项目上 然而 我的理解是 Makefile 项目文件夹首先必须复制到 SCons 的构建目录中 因为构建过程不应更改源树中的任何内容
  • 无法根据TypeOrm中的外键过滤数据

    我使用 Nest Js PostgresQl 和 Typeorm 我在 typeorm 中有这两个实体 export class Meta PrimaryGeneratedColumn name metaId metaId number C