В этой статье блога мы углубимся в использование перечислений в TypeORM с PostgreSQL. Перечисления предоставляют удобный способ определить набор предопределенных значений для определенного столбца в таблице базы данных. Мы рассмотрим различные методы и приемы работы с перечислениями с использованием TypeORM и предоставим примеры кода для каждого подхода.
- Создание перечисляемого типа:
Чтобы определить перечисляемый столбец в TypeORM с помощью PostgreSQL, вам необходимо сначала создать перечисляемый тип. Вот пример создания перечисляемого типа для столбца «Статус» с предопределенными значениями «Активный» и «Неактивный»:
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
enum StatusEnum {
Active = 'active',
Inactive = 'inactive',
}
@Entity()
export class ExampleEntity {
@PrimaryGeneratedColumn()
id: number;
@Column({
type: 'enum',
enum: StatusEnum,
default: StatusEnum.Active,
})
status: StatusEnum;
}
- Вставка значений перечисления.
При вставке записей в таблицу вы можете присвоить значения перечисления непосредственно столбцу перечисления. Вот пример:
const exampleEntity = new ExampleEntity();
exampleEntity.status = StatusEnum.Active;
await exampleEntity.save();
- Запрос значений перечисления.
Чтобы запросить записи на основе значений перечисления, вы можете использоватьQueryBuilder, предоставляемый TypeORM. Вот пример:
const activeEntities = await connection
.getRepository(ExampleEntity)
.createQueryBuilder('entity')
.where('entity.status = :status', { status: StatusEnum.Active })
.getMany();
- Обновление значений перечисления.
Чтобы обновить значение перечисления, вы можете изменить соответствующее свойство и сохранить объект. Вот пример:
const exampleEntity = await connection.getRepository(ExampleEntity).findOne(1);
exampleEntity.status = StatusEnum.Inactive;
await exampleEntity.save();
- Параметры столбца перечисления.
TypeORM предоставляет несколько параметров для настройки поведения столбцов перечисления. Некоторые распространенные варианты включают в себя:
enumName: указывает имя типа перечисления в базе данных.enumPrefix: добавляет префикс к значениям перечисления, хранящимся в базе данных.enumArray: значения перечислений сохраняются в виде массивов, а не отдельных значений.
Перечисления в TypeORM с PostgreSQL предлагают мощный способ определения и работы с предопределенными наборами значений в столбцах базы данных. В этой статье мы рассмотрели создание перечислимых типов, вставку и запрос значений перечисления, обновление значений перечисления и обсудили различные параметры столбцов, доступные в TypeORM. Использование перечислений может повысить целостность и читаемость схемы вашей базы данных, одновременно упрощая манипулирование данными в вашем приложении.
Не забывайте следовать рекомендациям при работе с перечислениями и следить за тем, чтобы они точно представляли предметную область вашего приложения.