मैंने typeorm querybuilder विकसित किया है। डिबगिंग के उद्देश्य के लिए, मैं एसक्यूएल दिखाना चाहता हूं।

मैंने printSql() विधि का परीक्षण किया। लेकिन इसने कोई एसक्यूएल नहीं दिखाया।

      const Result = await this.attendanceRepository
      .createQueryBuilder("attendance")
      .innerJoin("attendance.child", "child")
      .select(["attendance.childId","child.class","CONCAT(child.firstName, child.lastName)"])
      .where("attendance.id= :id", { id: id})
      .printSql()
      .getOne()
      console.log(Result);

यह निम्नलिखित लौट आया।

Attendance { childId: 4, child: Child { class: 'S' } }

मेरा वांछित परिणाम SQL प्राप्त करना है

क्या कोई गलत बिंदु है? एसक्यूएल पाने का कोई अच्छा तरीका है?

अगर किसी की राय है तो कृपया मुझे बताएं।

धन्यवाद

2
Heisenberg 18 अक्टूबर 2020, 14:02

1 उत्तर

सबसे बढ़िया उत्तर

.getQuery() या .getSql()


const sql1 = await this.attendanceRepository
      .createQueryBuilder("attendance")
      .innerJoin("attendance.child", "child")
      .select(["attendance.childId","child.class","CONCAT(child.firstName, child.lastName)"])
      .where("attendance.id= :id", { id: id})
      .getQuery();
      console.log(sql1);

const sql2 = await this.attendanceRepository
      .createQueryBuilder("attendance")
      .innerJoin("attendance.child", "child")
      .select(["attendance.childId","child.class","CONCAT(child.firstName, child.lastName)"])
      .where("attendance.id= :id", { id: id})
      .getSql();
      console.log(sql2);
2
Art Olshansky 18 अक्टूबर 2020, 16:06