• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[TypeORM] Tabela adresów wspólna dla dwóch innych tabel osób

Object Storage Arubacloud
0 głosów
64 wizyt
pytanie zadane 24 maja 2022 w JavaScript przez perlon Nowicjusz (120 p.)

Witam.

Mam dwie tabele trzymajace dane osób Agent, Customer. Każdy agent i każdy Customer może mieć jeden lub więcej adresów pocztowych. Wprowadziłem więc osobną tabelę z adresami. Wszystkie tabele są oparte o klucz główny id: number. Oprócz klucza id wprowadziłem do tabel agent i customer kolumnę uuid i oczywiście w tabeli addresss kolumnę owneruuid jako klucz obcy. No i teraz pytanie jak to zamodelować w TypeORM jako relacje OneToMany z tabel Agent i Customer do tabeli Address. Moje klasy (na potrzeby posta mocno okrojone) wyglądaja następująco:

export class EntityBase {
  @ApiProperty()
  @PrimaryGeneratedColumn()
  id: number;

  @CreateDateColumn()
  createdAt: Date;

  @UpdateDateColumn()
  updatedAt: Date;
}
@Entity('agents')
export class Agent extends EntityBase {
  @Column({ unique: true })
  @Generated('uuid')
  uuid: string;

  @OneToMany(() => Address, (address) => address.ownerid)
  @JoinColumn({ name: 'uuid', referencedColumnName: 'owneruuid' })
  addresses: Address[];
}
@Entity('customer')
export class Customer extends EntityBase {
  @Column({ unique: true })
  @Generated('uuid')
  uuid: string;

  @OneToMany(() => Address, (address) => address.owneruuid)
  @JoinColumn({ name: 'uuid', referencedColumnName: 'owneruuid' })
  addresses: Address[];
}
@Entity('addresses')
export class Address extends EntityBase {
  @Column({ type: 'uuid', length: 36 })
  owneruuid: string;
}

Oczywiście powyższa konfiguracja @OneToMany() i @JoinColumn() nie działa. Da się to zamodelować w TypeORM, czy jestem skazany na ręczne budowanie osobnych zapytań w QueryBuilderze? Jakieś inne pomysły?

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 290 wizyt
0 głosów
0 odpowiedzi 302 wizyt
0 głosów
0 odpowiedzi 48 wizyt

92,575 zapytań

141,424 odpowiedzi

319,650 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...