import type { EntityManager, QueryBuilder } from '@mikro-orm/postgresql'; import type { StandardBaseEntity } from '../StandardBaseEntity'; import type { EntityClass } from './EntityClass'; export async function createQueryBuilder( em: EntityManager, Entity: EntityClass, ): Promise<{ builder: QueryBuilder }> { // 使用 qb 必须手动 applyFilter // 让 TidFilter 生效 const builder = em.createQueryBuilder(Entity, undefined, undefined, { // enabled: getDatabaseContext().debug, }); let cond = await em.applyFilters(Entity.name as any, {}, {}, 'read'); cond && builder.andWhere(cond); // await builder will execute return { builder }; }