我的代码如下
@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 参数让每次执行都刷新,不使用缓存。