INNER CODE UNIT · TypeScript
SelfKeyDataloader
slaypni/type-graphql-dataloader · src/decorators/typeorm/ExplicitLoaderImpl.ts:196
class SelfKeyDataloader<V> extends DataLoader<any, V[]> {
constructor(
relation: RelationMetadata,
connection: Connection,
selfKeyFunc: (root: any) => any
) {
super(async (ids) => {
const columns = relation.inverseRelation!.joinColumns;
const k = `${relation.propertyName}_${columns[0].propertyName}`;
const entities = groupBy(
await connection
.createQueryBuilder<V>(relation.type, relation.propertyName)
.where(
`${relation.propertyName}.${columns[0].propertyPath} IN (:...${k})`
)
.setParameter(k, ids)
.getMany(),
selfKeyFunc