Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

स्व-संदर्भित कई, कई संबंध प्रकारORM

आप अपने संबंधों को आत्म-संदर्भित कर सकते हैं। यहां एक सरल निर्देशित ग्राफ का उदाहरण दिया गया है (उर्फ नोड में माता-पिता और कई बच्चे हो सकते हैं)।

@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[];
}

ध्यान में रखने के लिए एक महत्वपूर्ण नोट यह है कि डीबी से किसी ऑब्जेक्ट को find* के साथ पढ़ते समय ये संबंध ऑटो लोड नहीं होते हैं कार्य।

वास्तव में उन्हें लोड करने के लिए, आपको इस समय क्वेरी बिल्डर का उपयोग करना होगा और उनसे जुड़ना होगा। (आप कई स्तरों में शामिल हो सकते हैं।) एक उदाहरण:

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

कृपया ध्यान दें कि मैंने उन्हें संदर्भित करने के लिए विभिन्न नामों का उपयोग कैसे किया (category , product , और 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. मैं अपने आवेदन में ऑनलाइन उपयोगकर्ताओं की गणना कैसे कर सकता हूं?

  2. मुझे mysql परिणामों के असामान्य क्रम की आवश्यकता है

  3. किसी अन्य तालिका से SUM के साथ तालिका अपडेट करें

  4. जेपीए:MySQL का कहना है कि तालिका मौजूद नहीं है, लेकिन यह वास्तव में मौजूद है

  5. ध्यान में न आया अपवाद 'PDOException' संदेश के साथ 'SQLSTATE [HY093]:अमान्य पैरामीटर संख्या'