Error: A circular dependency has been detected (property key: "createdBy"). Please, make sure that each side of a bidirectional relationships are using lazy resolvers ("type: () => ClassType").
Closed this issue · 3 comments
Entity definition for the 'Phones' model:
model Phones {
createdBy Users? @relation("CreatedPhones", fields: [createdById], references: [id], onDelete: SetNull)
updatedBy Users? @relation("UpdatedPhones", fields: [updatedById], references: [id], onDelete: SetNull)
packages Packages @relation(fields: [packageId], references: [id])
usages PhoneUsages[]
}
The generated entity class:
export class Phones {
@ApiProperty({
required: false,
nullable: true,
})
createdBy?: Users | null;
@ApiProperty({
required: false,
nullable: true,
})
updatedBy?: Users | null;
@ApiProperty({
required: false,
})
packages?: Packages;
@ApiProperty({
type: () => PhoneUsages,
isArray: true,
required: false,
})
usages?: PhoneUsages[];
}
When you manually set the type for 'createdBy' and 'updatedBy', or change the package version back to 1.17.4 the problem will be resolved:
export class Phones {
@ApiProperty({
type: () => Users,
required: false,
nullable: true,
})
createdBy?: Users | null;
@ApiProperty({
type: () => Users,
required: false,
nullable: true,
})
updatedBy?: Users | null;
@ApiProperty({
required: false,
})
packages?: Packages;
@ApiProperty({
type: () => PhoneUsages,
isArray: true,
required: false,
})
usages?: PhoneUsages[];
}
- nestjs v9++
- @brakebein/prisma-generator-nestjs-dto v1.18.3
Do you have any annotations available to specify the data type within the @ApiProperty decorator? Or any solution
Thanks for pointing out. The lazy resolver is already added if the field is a list, but not yet for the other fields. It should be a quick addition to add the lazy resovler if the field is a complex type/relation in general to avoid those errors.
With the latest release, this should now be resolved.
Thank you for your fast response and work hardest, after update to latest, it works fineThank you so much for your quick response and hard work! I really appreciate it. After updating to the latest version, everything is working perfectly fine now.