PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

TypeORM warunkowy dopuszczający wartość null?

Krótka odpowiedź brzmi nie, nie na poziomie TypeORM. Możesz to jednak osiągnąć w kodzie aplikacji za pomocą ValidateIf dekorator z 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[];

W innym miejscu w aplikacji:

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

Jeśli ta jednostka przechodzi przez kontroler, możesz również użyć ValidationPipe NestJS aby wymusić to w kontrolerze lub aplikacji poziom:

// 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. Wypełnij tablicę wielowymiarową

  2. Jak mogę zrobić wiele order_by w Flask-SQLAlchemy?

  3. Dynamiczne upsert w postgresql

  4. Utwórz schemat, jeśli nie istnieje, używając sprężynowego Jpa z hibernacją

  5. Jak usunąć lub zmienić zapytanie dotyczące liczby stronicowania cakephp w postgresql?