问题标签 [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 投票
0 回答
197 浏览

node.js - Mikro ORM:属性在 orm.em.create() 上有任何类型;

我创建了一个产品实体,并使用 ORM 生成假数据。但是,em.create 使用 any 作为实体属性的类型。此外, em.create 已将所有属性设为可选,包括我明确设置为需要!标记的属性(Product.name例如)。我看不出我做错了什么。这是代码

产品实体:

em.create() 的类型

em.create 的类型

请让我知道我做错了什么?

0 投票
0 回答
87 浏览

node.js - MongoDB全文搜索,获取原生mongo驱动Mikro ORM

我正在尝试使用 Mikro ORM 在 MongoDB 中使用全文搜索。我已经看到了在 SQL 驱动程序中实现全文而不是 MongoDB 的问题。MongoDB中的全文搜索是否有任何替代或解决方法?如果没有,我怎样才能像getKnex在 SQL 中一样在 Mikro ORM 中获得本机 MongoDB 驱动程序?

0 投票
0 回答
136 浏览

node.js - 在 Mikro-ORM 中多次分叉 EntityManager 意味着什么?

我正在使用 Apollo Server Express 和 Mikro-ORM 构建一个后端 Web 服务器,并按照文档,我发现该fork()方法可用于获得一个干净的实体管理器。我已将配置对象中的函数用作上下文的一部分。

在注销代码中显示的上下文时,我发现所有分支都保存在内存中(或者看起来是)。

输出:

我的问题是,在某些时候是否会因此产生负面后果,如果是,我该如何处理这个问题?

0 投票
1 回答
227 浏览

typescript - MikroORM:如何通过原始 id 设置外键?

在 MikroORM 中,如何通过原始数值设置外键?例如,在 Django ORM 中,您可以这样做:

而这个,带有原始ID

如何在 MikroORM 中使用原始 ID?

0 投票
1 回答
155 浏览

mikro-orm - 使用 em.create 创建的实体是否被管理和持久化?

https://mikro-orm.io/docs/entity-manager/上的文档说

如果实体是从数据库中获取的(通过 em.find()、em.findOne() 或通过其他托管实体)或通过 em.persist() 注册为新实体,则该实体是托管的。

但它没有提到em.create方法。
实体是通过em.create自动管理创建的,它们是否会被持久化em.flush
如果是这样,是否可以创建一个不会被em.flushwith持久化的实体em.create

0 投票
1 回答
355 浏览

postgresql - 是否可以在 mikro-orm 中选择嵌套实体的属性?

我正在使用 mikro-orm 和 express 在后端控制器中进行以下简单设置:

这些是我正在使用的实体的简化版本:

该代码应返回包含国家/地区的来源列表。到目前为止,代码工作正常,但它返回以下对象:

有没有办法使用查询参数过滤嵌套实体的返回属性,以便它返回一个更简单的对象,例如:

我尝试了多种语法变体,但似乎找不到合适的。mikro-orm 上的文档在这个具体案例上不太清楚。在此先感谢您的帮助

0 投票
1 回答
70 浏览

javascript - 由 Mikro ORM 执行的映射文件

我是学习 Mikro-ORM 的初学者,我的.map文件一直遇到问题。我正在将我编译typescript成 javascript,然后用 node 执行 js。但是,当我使用 node 执行 javascript 时,我遇到了以下错误:

目前,我刚刚删除了这些map文件,但我不认为这是我继续前进的解决方案。我一直在寻找这个问题几个小时,但在 StackOverflow 上的任何地方都没有找到这样的问题。谢谢!

0 投票
1 回答
152 浏览

nestjs - 无法通过 EntityRepository.create 或 EntityRepository.persist #MikroOrm #NestJS 插入数据

:)

我正在尝试使用文件中的代码测试我的实体操作。我正在创建一个 userRepository 对象,如下所示

当我从存储库中进行 console.log find{} 时,它会获取以前存储的记录: image 我使用 faker 创建了一个虚拟对象,它工作正常,但是一旦我尝试在 DB 中创建它或将其持久化,它似乎没有工作: 在此处输入图像描述

我也试过 orm.em.persist。如果需要更多详细信息,请告诉我。

0 投票
1 回答
261 浏览

mikro-orm - 如何正确使用 EntityRepository 实例?

文档强调我应该EntityManager为每个请求使用一个新的,甚至还有一个用于自动生成它的中间件,或者我可以使用em.fork(). 到目前为止,一切都很好。

EntityRepository是使代码可读的好方法。我在文档中找不到任何关于它们如何与EntityManager实例相关的信息。该express-ts-example-app示例使用存储库和RequestContext中间件的单个实例。这表明EntityManager至少在RequestContext. 真的是这样吗?

另外,如果我手动分叉 EM,它还能找到正确的吗?考虑以下示例:

是否使用DI.invoiceRepository.persist()fetchInvoicesOfACompany()正确的 EM 实例?如果没有,我该怎么办?

另外,如果我没记错的话,em.flush()infetchInvoicesOfACompany()不会更新公司,因为它属于另一个 EM - 我应该如何处理这种情况?

0 投票
1 回答
800 浏览

typescript - 我想用 typescript 将 mikroConfig 初始化为 MikroORM,我收到了这个错误消息

错误信息:

'{ 只读实体的参数:readonly [typeof Post]; 只读数据库名称:“lireddit”;只读类型:“postgresql”;只读调试:布尔值;}' 不可分配给“配置<IDatabaseDriver>”类型的参数 | 选项<IDatabaseDriver> | 不明确的'。类型'{只读实体:只读[typeof Post]; 只读数据库名称:“lireddit”;只读类型:“postgresql”;只读调试:布尔值;}' 不可分配给类型 'Options<IDatabaseDriver>'。类型'{只读实体:只读[typeof Post]; 只读数据库名称:“lireddit”;只读类型:“postgresql”;只读调试:布尔值;}' 不可分配给类型 'Partial<MikroORMOptions<IDatabaseDriver>>'。属性“实体”的类型不兼容。

index.ts:

还有 mikro-orm.config.ts:

谢谢你的帮助,我很痛苦