У меня есть поле учетной записи в моей базе данных Postgres, в котором есть как имя пользователя, так и организация, к которой оно принадлежит. Эти поля вместе должны быть уникальными, то есть несколько пользователей могут иметь одно и то же имя пользователя, но несколько пользователей в одной организации не могут иметь одно и то же имя пользователя.
create table account (
user_id serial primary key,
username varchar not null,
password varchar not null,
is_admin bool not null default false,
organization_id int not null references organization(organization_id) on delete cascade,
unique (username, organization_id)
);
При использовании Prisma в NodeJs для запроса учетной записи по имени пользователя + идентификатору организации, чтобы получить точного пользователя, я использую этот запрос:
export async function getAccountByUsernameAndOrganization(username, organization_id) {
return runQuery(
prisma.account.findOne({
where: {
username,
organization_id,
},
}),
);
Однако запрос не выполняется с сообщениями:
Для аргумента типа accountWhereUniqueInput требуется ровно один аргумент, но вы указали имя пользователя и идентификатор организации. Пожалуйста, выберите один. Доступные аргументы:
type accountWhereUniqueInput {
user_id?: Int
customer_id?: String
organization_id?: Int
account_username_organization_id_key?: Account_username_organization_id_keyCompoundUniqueInput
}
Неизвестный аргумент 'username' в where.username для типа accountWhereUniqueInput. Вы имели в виду user_id? Доступные аргументы:
type accountWhereUniqueInput {
user_id?: Int
customer_id?: String
organization_id?: Int
account_username_organization_id_key?: Account_username_organization_id_keyCompoundUniqueInput
}