我开发了typeorm querybuilder。为了调试的目的,我想展示sql。
我测试了printSql()方法。但它没有显示任何 SQL。
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);
Run Code Online (Sandbox Code Playgroud)
它回来了。
Attendance { childId: 4, child: Child { class: 'S' } }
Run Code Online (Sandbox Code Playgroud)
我想要的结果是得到 SQL
有什么不对的地方吗?有没有什么好的方法来获取 sql ?
如果有人有意见,请告诉我。
谢谢
iAv*_*tor 10
printSql也可以使用,但只有logging启用时才会打印。
@Module({
imports: [
TypeOrmModule.forRoot({
...options
logging: true
}),
],
})
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();
Run Code Online (Sandbox Code Playgroud)
.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);
Run Code Online (Sandbox Code Playgroud)
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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3588 次 |
| 最近记录: |