Изучение использования Enum в TypeORM с PostgreSQL

В этой статье блога мы углубимся в использование перечислений в TypeORM с PostgreSQL. Перечисления предоставляют удобный способ определить набор предопределенных значений для определенного столбца в таблице базы данных. Мы рассмотрим различные методы и приемы работы с перечислениями с использованием TypeORM и предоставим примеры кода для каждого подхода.

  1. Создание перечисляемого типа:
    Чтобы определить перечисляемый столбец в 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;
}
  1. Вставка значений перечисления.
    При вставке записей в таблицу вы можете присвоить значения перечисления непосредственно столбцу перечисления. Вот пример:
const exampleEntity = new ExampleEntity();
exampleEntity.status = StatusEnum.Active;
await exampleEntity.save();
  1. Запрос значений перечисления.
    Чтобы запросить записи на основе значений перечисления, вы можете использовать QueryBuilder, предоставляемый TypeORM. Вот пример:
const activeEntities = await connection
  .getRepository(ExampleEntity)
  .createQueryBuilder('entity')
  .where('entity.status = :status', { status: StatusEnum.Active })
  .getMany();
  1. Обновление значений перечисления.
    Чтобы обновить значение перечисления, вы можете изменить соответствующее свойство и сохранить объект. Вот пример:
const exampleEntity = await connection.getRepository(ExampleEntity).findOne(1);
exampleEntity.status = StatusEnum.Inactive;
await exampleEntity.save();
  1. Параметры столбца перечисления.
    TypeORM предоставляет несколько параметров для настройки поведения столбцов перечисления. Некоторые распространенные варианты включают в себя:
  • enumName: указывает имя типа перечисления в базе данных.
  • enumPrefix: добавляет префикс к значениям перечисления, хранящимся в базе данных.
  • enumArray: значения перечислений сохраняются в виде массивов, а не отдельных значений.

Перечисления в TypeORM с PostgreSQL предлагают мощный способ определения и работы с предопределенными наборами значений в столбцах базы данных. В этой статье мы рассмотрели создание перечислимых типов, вставку и запрос значений перечисления, обновление значений перечисления и обсудили различные параметры столбцов, доступные в TypeORM. Использование перечислений может повысить целостность и читаемость схемы вашей базы данных, одновременно упрощая манипулирование данными в вашем приложении.

Не забывайте следовать рекомендациям при работе с перечислениями и следить за тем, чтобы они точно представляли предметную область вашего приложения.