Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Self-Referencing ManyToMany Relationship TypeORM

Anda dapat merujuk sendiri hubungan Anda. Berikut adalah contoh graf berarah sederhana (alias sebuah simpul dapat memiliki orang tua dan banyak anak).

@Entity()
export class Service extends BaseEntity {

  @PrimaryGeneratedColumn()
  id: number;
  
  @Column()
  @Index({ unique: true })
  title: string;

  @ManyToOne(type => Service, service => service.children)
  parent: Service;

  @OneToMany(type => Service, service => service.parent)
  children: Service[];
}

Catatan penting yang perlu diingat adalah bahwa relasi ini tidak dimuat secara otomatis saat membaca objek dari DB dengan find* fungsi.

Untuk benar-benar memuatnya, Anda harus menggunakan pembuat kueri saat ini dan bergabung dengan mereka. (Anda dapat bergabung dengan beberapa level.) Contoh:

let allServices = await this.repository.createQueryBuilder('category')
  .andWhere('category.price IS NULL')
  .innerJoinAndSelect('category.children', 'product')
  .leftJoinAndSelect('product.children', 'addon')
  .getMany();

Harap perhatikan bagaimana saya menggunakan nama yang berbeda untuk merujuknya (category , product , dan addon ).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa cara terbaik untuk mengenkripsi/mendekripsi string json

  2. Cari Beberapa Item di Beberapa kolom

  3. Sqlalchemy, kueri mentah, dan parameter

  4. Mengisi drop down dengan entri MySQL

  5. Menggunakan klausa WHERE untuk menemukan POI dalam rentang jarak dari Bujur dan Lintang