我的实体包含具有枚举类型的数组元素。
我必须找到其数组元素中包含某个枚举值的所有实体。
喜欢这个。
enum AccessoryType {
Patio = 'PATIO',
DriveWay = 'DRIVE_WAY',
...
}
enum MaterialType {
Granite = 'GRANITE',
BlueStone = 'BLUE_STONE',
NaturalStone = 'NATURAL_STONE',
...
}
@Injectable()
class IdeaEntity {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column()
url: string;
@Column({ type: 'enum', enum: AccessoryType })
accessoryType: AccessoryType;
@ApiProperty({ enum: MaterialType, isArray: true })
@Column({
type: 'enum',
enum: MaterialType,
array: true,
})
materialTypes: MaterialType[];
}
function myQueryFunction(accessoryType: AccessoryType, materialTypes: MaterialType[], skip: number, take: number): Promise<IdeaEntity[]> {
...
return ideaRepository.find({
where: {
accessoryType: accessoryType,
materialTypes: {
contains: materialTypes
}
}, skip, take
});
...
}
或至少(提供单个值):
where: {
...
materialTypes: {
contains: MaterialType.Granite
}
...
}
是否可以使用typeorm函数来实现这一目标?
答案 0 :(得分:1)
您已尝试过这种方法:https://github.com/typeorm/typeorm/issues/1401
但是我建议您创建另一个在每个表中具有关系的MaterialTypesEntity(使用这种方法,查找实体没有问题)