mikro orm findOne缓存

我的代码如下

@Injectable()
export class MyService {
constructor(private readonly em: EntityManager) {}

async doSomething(id: number) {
const account = this.em.findOne(Account, {
id: id,
});
}
}

对应的account 已经在数据库被修改;但是多次执行,拿到的是缓存数据;尝试打印mikro orm 的查询日志,发现后面都没有执行查询。

@Injectable()
export class MyService {
  constructor(private readonly em: EntityManager) {

  async doSomething(id: number) {
    const account = this.em.findOne(Account, {
      id: id,
    },
   { refresh: true });
  }
}

最后发现可以通过添加 refresh 参数让每次执行都刷新,不使用缓存。

发表评论