sql >> Databáze >  >> RDS >> PostgreSQL

TypeORM s podmíněnou hodnotou Null?

Krátká odpověď je ne, ne na úrovni TypeORM. Toho však můžete dosáhnout v kódu aplikace pomocí ValidateIf dekoratér 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[];

Jinde ve vaší aplikaci:

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

Pokud tato entita prochází řadičem, můžete také použít ValidationPipe NestJS abyste to vynutili u ovladače nebo aplikace úroveň:

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



  1. Nasazení a konfigurace ODP.NET pro práci bez instalace s Entity Framework

  2. Jak přidat dny k datu v MySQL

  3. Postgres:upravte každý prvek pole

  4. Numerické přetečení Solr