PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

TypeORM условно nullable?

Краткият отговор е не, не на ниво TypeORM. Можете обаче да постигнете това в кода на приложението си, като използвате ValidateIf декоратор от class-validator :

@Column({ nullable: true })
@Exclude()
@IsNotEmpty()
@ValidateIf(u => !u.oAuthLogins || u.oAuthLogins.length === 0)
public password?: string;

@JoinColumn()
@IsArray()
@ValidateIf(u => !u.password)
@OneToMany(() => OAuthLogin, (provider: OAuthLogin) => provider.user, {
cascade: true,
})
public oAuthLogins?: OAuthLogin[];

На друго място във вашето приложение:

import { validate } from 'class-validator';
...
validate(user)

Ако този обект преминава през контролер, можете също да използвате ValidationPipe на NestJS за налагане на това в контролера или приложението ниво:

// main.ts
app.useGlobalPipes(new ValidationPipe({ whitelist: true }));



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да добавите персонализиран доставчик на DB, за да бъде достъпен в Visual Studio?

  2. Копирайте от csv в таблица с id серийна колона, автоматично увеличаваща PSQL

  3. Връщане на класирани резултати от търсене с помощта на gin индекс със sqlalchemy

  4. Изтриване на функционалност с spark sql dataframe

  5. AFTER INSERT тригер в отделна транзакция?