问题标签 [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.
typescript - 如何在 MikroORM 中插入相关实体?
我很难插入相互关联的元素。我很确定我只是做错了。这是我如何尝试做的一个例子。Mikro 似乎没有在表 dec_declinaison 中设置 fk。
typescript - 试图坚持未发现的对象类型实体
问题
我是 and 的新手Nest.js
,Mikro-ORM
我必须将其作为工作要求来学习。
这个栈需要TypeScript
,我打心眼里鄙视,但必须要做。
我已经设置了我的应用程序,当我执行时npm run start:dev
,它启动时没有问题。
但是,当我尝试向数据库中添加一些内容时,它会突然出现并给我以下错误块:
这是我第一次走进这个堆栈,我不知道错误是什么意思。当我谷歌这个错误时,我没有得到任何有用的信息。我该怎么做才能让它消失?
相关代码
- 实体 (
User.ts
)
- 控制器 (
users.controller.ts
)
- 服务 (
users.service.ts
)
- 模块 (
users.module.ts
)
- DTO
- 界面
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 可以急切地获取所有实现,并且在我以后需要特定属性之前我不必担心类型。
有人可以指出我正确的方向吗?提前致谢。
javascript - 错误 TableExistsException:无法使用 Mikro-ORM 和 PSQL 创建迁移
我目前正在尝试将我的 PostgreSQL 数据库与 Mikro-ORM 链接,但是当我尝试运行迁移时,我会收到此错误:
这对我来说没有意义,因为我已经在 Windows 机器上执行了此操作,并且一切正常,当我使用 psql cli 或 pg Admin 4 时,两台设备上的一切看起来都一样。我也已经查看过,但找不到“用户”数据库的其他单个实例。如果我需要显示更多文件,请告诉我,我只是不确定这个错误意味着什么。
node.js - 使用 inversify 注入自定义存储库
我正在用 inversify 练习 mikroorm。
我有TodoEntity
这是自定义存储库TodoRepository
我将注入repository
到service
通过
这是我的控制器
这是类型
容器
如何将自定义存储库注入服务,我有一个错误说
Error: Missing required @injectable annotation in: SqlEntityRepository
但是当我没有包括repository
唯一的 service
和controller
我试图测试转储时。DI 工作正常
我按照这个例子用 mikro orm 反转例子
但在他没有使用自定义回购的例子中,知道我可以从哪里开始解决这个问题吗?
jestjs - NestJS / GraphQL e2e 测试错误:“PickObjectType”的“id”字段的默认值不匹配导致的错误。确保这些 val
使用 NestJS GraphQL 运行 e2e 测试时,我收到以下错误。然而,测试运行平稳,执行,产生了想要的结果。只是由于以下错误导致测试失败:
有没有人见过这个?
这是测试:
非常感谢您的任何提示!也在这里发布:https ://github.com/nestjs/graphql/issues/1626
node.js - Mikro-orm 在集合上调用 remove() 会删除所有内容,而不仅仅是一个
我目前正在实现用户和产品之间的 M:M 关系,该产品使用自定义连接表来实现购物车。这是自定义连接表:
用户实体的部分(类似于产品)
我目前正在实现一项功能,将产品从购物车中删除。但是,当我调用 user.userInCartProducts.remove() 时,它不仅会删除该元素,还会从 user.userInCartProducts 中删除所有内容,留下一个空数组。以下是从用户购物车中删除产品的代码:
我检查了从 Mikro-orm 生成的 SQL,并以某种方式将 users_in_cart_products 连接表中的所有内容的 user_id 设置为 NULL:
那么我该如何解决这个问题呢?我只想让集合删除那个项目,而不是每一个项目。谢谢!
mikro-orm - Mikroorm 检查实体是否被删除
em.nativeDelete 返回删除了多少实体,所以我可以这样做:
有没有办法用 remove() 做同样的事情。它返回 EntityManager 我如何检查是否删除了实体:
node.js - 回滚后的 Mikroorm id 漏洞
我将几个实体保存到我的数据库中:
当其中一个失败时,事务失败并回滚。假设这些任务是他们失败的前 4 个任务,数据库中没有任务,但是下次我插入一个任务时,它从 id 5 开始。有没有办法从持久的 id 中删除这些任务?
我也在设置RequestContext:
typescript - 使用 Mikro-ORM 查询时如何在 find 操作中键入 where 参数?
我正在使用 Mikro-ORM 和 type-graphql 创建一个 GraphQL 服务器,对于某些 GraphQL 查询,我需要根据查询参数的无效性为查找操作动态创建“where”参数。我的问题是关于“where”参数的输入。
我尝试FilterQuery<Topic>
基于调用签名使用,find
但这会在赋值行引发“类型上不存在属性”错误,并在调用find
函数行引发“类型不兼容”错误。any
除了在代码片段中使用 like 之外,还有其他解决方案吗?