问题标签 [mikro-orm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
589 浏览

typescript - 如何在 MikroORM 中插入相关实体?

我很难插入相互关联的元素。我很确定我只是做错了。这是我如何尝试做的一个例子。Mikro 似乎没有在表 dec_declinaison 中设置 fk。

0 投票
1 回答
553 浏览

typescript - 试图坚持未发现的对象类型实体

问题

我是 and 的新手Nest.jsMikro-ORM我必须将其作为工作要求来学习。

这个栈需要TypeScript,我打心眼里鄙视,但必须要做。

我已经设置了我的应用程序,当我执行时npm run start:dev,它启动时没有问题。

但是,当我尝试向数据库中添加一些内容时,它会突然出现并给我以下错误块:

这是我第一次走进这个堆栈,我不知道错误是什么意思。当我谷歌这个错误时,我没有得到任何有用的信息。我该怎么做才能让它消失?

相关代码

  • 实体 ( User.ts)
  • 控制器 ( users.controller.ts)
  • 服务 ( users.service.ts)
  • 模块 ( users.module.ts)
  • DTO
  • 界面
0 投票
0 回答
291 浏览

sql - Mikro-ORM 中的多表继承和枚举实体

我有以下实体:Quiz、Slide、TextSlide 和 SlideType。一个测验可以有多个不同类型的幻灯片,例如 TextSlide、QuestionSlide 等。为简洁起见,我仅在此示例中包含了 TextSlide。SlideType 表作为一种存储所有幻灯片类型(如枚举)的方式,但以适当的 SQL 方式,因此使用 INT id。表格如下所示:

这使得 Slide 成为一个有点抽象的类,只有三个常用参数:id、index 和 quiz_id。TextSlide 和 QuestionSlide 等实现都有不同的字段,但是从这个 Slide 实体扩展而来。

我将如何使用 JPA 在 Java 中解决这个问题,如下所示:

但是,我似乎想不出用 Mikro-ORM 做到这一点的解决方案。有几个挑战:

  • 枚举不能用作实体
  • 使用 TextSlide 扩展 Slide 会导致 TextSlide 继承 Slide 的属性,而我实际上希望 TextSlide 是 Slide 实体的实现,其中某些字段属于 Slide (id, index, quiz_id, ...) 并且某些字段属于 TextSlide (slide_id , 文本, ...); 我想使用一个通用超类(Slide)的原因是因为 Quiz 可以急切地获取所有实现,并且在我以后需要特定属性之前我不必担心类型。

有人可以指出我正确的方向吗?提前致谢。

0 投票
0 回答
268 浏览

javascript - 错误 TableExistsException:无法使用 Mikro-ORM 和 PSQL 创建迁移

我目前正在尝试将我的 PostgreSQL 数据库与 Mikro-ORM 链接,但是当我尝试运行迁移时,我会收到此错误:

这对我来说没有意义,因为我已经在 Windows 机器上执行了此操作,并且一切正常,当我使用 psql cli 或 pg Admin 4 时,两台设备上的一切看起来都一样。我也已经查看过,但找不到“用户”数据库的其他单个实例。如果我需要显示更多文件,请告诉我,我只是不确定这个错误意味着什么。

0 投票
1 回答
217 浏览

node.js - 使用 inversify 注入自定义存储库

我正在用 inversify 练习 mikroorm。

我有TodoEntity

这是自定义存储库TodoRepository

我将注入repositoryservice通过

这是我的控制器

这是类型

容器

如何将自定义存储库注入服务,我有一个错误说 Error: Missing required @injectable annotation in: SqlEntityRepository

但是当我没有包括repository唯一的 servicecontroller我试图测试转储时。DI 工作正常

我按照这个例子用 mikro orm 反转例子

但在他没有使用自定义回购的例子中,知道我可以从哪里开始解决这个问题吗?

0 投票
0 回答
170 浏览

jestjs - NestJS / GraphQL e2e 测试错误:“PickObjectType”的“id”字段的默认值不匹配导致的错误。确保这些 val

使用 NestJS GraphQL 运行 e2e 测试时,我收到以下错误。然而,测试运行平稳,执行,产生了想要的结果。只是由于以下错误导致测试失败:

有没有人见过这个?

这是测试:

非常感谢您的任何提示!也在这里发布:https ://github.com/nestjs/graphql/issues/1626

0 投票
0 回答
293 浏览

node.js - Mikro-orm 在集合上调用 remove() 会删除所有内容,而不仅仅是一个

我目前正在实现用户和产品之间的 M:M 关系,该产品使用自定义连接表来实现购物车。这是自定义连接表:

用户实体的部分(类似于产品)

我目前正在实现一项功能,将产品从购物车中删除。但是,当我调用 user.userInCartProducts.remove() 时,它不仅会删除该元素,还会从 user.userInCartProducts 中删除所有内容,留下一个空数组。以下是从用户购物车中删除产品的代码:

我检查了从 Mikro-orm 生成的 SQL,并以某种方式将 users_in_cart_products 连接表中的所有内容的 user_id 设置为 NULL:

那么我该如何解决这个问题呢?我只想让集合删除那个项目,而不是每一个项目。谢谢!

0 投票
1 回答
201 浏览

mikro-orm - Mikroorm 检查实体是否被删除

em.nativeDelete 返回删除了多少实体,所以我可以这样做:

有没有办法用 remove() 做同样的事情。它返回 EntityManager 我如何检查是否删除了实体:

0 投票
0 回答
61 浏览

node.js - 回滚后的 Mikroorm id 漏洞

我将几个实体保存到我的数据库中:

当其中一个失败时,事务失败并回滚。假设这些任务是他们失败的前 4 个任务,数据库中没有任务,但是下次我插入一个任务时,它从 id 5 开始。有没有办法从持久的 id 中删除这些任务?

我也在设置RequestContext:

0 投票
1 回答
90 浏览

typescript - 使用 Mikro-ORM 查询时如何在 find 操作中键入 where 参数?

我正在使用 Mikro-ORM 和 type-graphql 创建一个 GraphQL 服务器,对于某些 GraphQL 查询,我需要根据查询参数的无效性为查找操作动态创建“where”参数。我的问题是关于“where”参数的输入。

我尝试FilterQuery<Topic>基于调用签名使用,find但这会在赋值行引发“类型上不存在属性”错误,并在调用find函数行引发“类型不兼容”错误。any除了在代码片段中使用 like 之外,还有其他解决方案吗?