0

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

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

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

4

1 回答 1

1

该方法是 的快捷方式EntityFactory,它所做的只是创建实例,就像您手动使用实体 ctor 一样。它不会被持久化,也不会被管理(实体在flush调用后被管理,perist 本身只是为了标记它)。

// this is the same
const a = em.create(User, { name: '...' });
em.persist(a);
await em.flush();

// as this
const a = new User();
a.name = '...';
em.persist(a);
await em.flush();

在这两个示例中,没有em.persist任何内容都将存储在数据库中。

于 2021-02-26T13:55:18.407 回答