TypeORM 的类型不匹配
Type mismatch at TypeORM
我想使用 TypeORM 在 Postgres 的数组中搜索 cookieId。
这个问题的答案在这里给出:How do I query an array in TypeORM
然而,当我实现代码时:
user = await this.usersRepository
.createQueryBuilder('user')
.where('user.userCookieIds @> ARRAY[:cookieId]', {cookieId: userCookieId})
.getOne();
相关实体是:
@Column("varchar", { array: true })
userCookieIds: string[];
我收到一个错误:
QueryFailedError: operator does not exist: character varying[] @> text[]
在这种情况下,我如何在 postgres 中指定 cookieId
的类型,所以它也将是 varchar
?
您应该能够将值转换为正确的类型:
user = await this.usersRepository
.createQueryBuilder('user')
.where('user.userCookieIds @> ARRAY[:cookieId]::varchar[]', {cookieId: userCookieId})
.getOne();
您还可以更改您的列以使用文本数组而不是 varchar:
我想使用 TypeORM 在 Postgres 的数组中搜索 cookieId。 这个问题的答案在这里给出:How do I query an array in TypeORM
然而,当我实现代码时:
user = await this.usersRepository
.createQueryBuilder('user')
.where('user.userCookieIds @> ARRAY[:cookieId]', {cookieId: userCookieId})
.getOne();
相关实体是:
@Column("varchar", { array: true })
userCookieIds: string[];
我收到一个错误:
QueryFailedError: operator does not exist: character varying[] @> text[]
在这种情况下,我如何在 postgres 中指定 cookieId
的类型,所以它也将是 varchar
?
您应该能够将值转换为正确的类型:
user = await this.usersRepository
.createQueryBuilder('user')
.where('user.userCookieIds @> ARRAY[:cookieId]::varchar[]', {cookieId: userCookieId})
.getOne();
您还可以更改您的列以使用文本数组而不是 varchar: