TypeORM Typescript:如何在比较UUID时忽略大小写



下面的代码:

.findOne({ id: model.userId })!;

进行区分大小写的比较。我想比较一下UUIDcase insensitive

我该怎么做?

我使用MSSQL作为数据库。它以小写形式存储GUID。但是有一个问题,TypeORM总是返回Uppercased UUID

例如:

let application = await applicationRepo.findOne({id: model.id, ownerId: res.locals.owner.id});

返回此:

{
"id": "AFB3015E-BE49-EC11-AE4D-74D83E04F9D3",
"name": ".....",
"dateCreated": "1637384252132",
"status": "ACTIVE",
"ownerId": "96BBB111-BE49-EC11-AE4D-74D83E04F9D3"
}

如果可能的话,我想设置并获取小写的uuid。

我该怎么做?


注意

这是实体示例:

@Entity()
export class Application {
@PrimaryGeneratedColumn("uuid")
id: string;
@Column()
name: string;
@Column("bigint")
dateCreated: number;
@Column()
status: string;
@ManyToOne(type => Owner, owner => owner.applications)
@JoinColumn({ name: "ownerId" })
owner: Owner;
@Column()
ownerId: string;
@OneToMany(type => User, user => user.application)
users: User[];
@OneToMany(type => ChatRoom, chatRoom => chatRoom.application)
chatRooms: ChatRoom[];
}

您可以使用toLowerCase()在本地对其进行修改

const data = {
"id": "AFB3015E-BE49-EC11-AE4D-74D83E04F9D3",
"name": ".....",
"dateCreated": "1637384252132",
"status": "ACTIVE",
"ownerId": "96BBB111-BE49-EC11-AE4D-74D83E04F9D3"
}
const result = { ...data, id: data.id.toLowerCase() };
console.log(result);

最新更新