Hen*_*eak 4 javascript typeorm
我想从表中选择的列命名的最大值quotationVersion从表中quotation,
getOneMaximumQuotationVersion() {
const query = this.createQueryBuilder("quotation");
query.select("MAX(quotation.quotationVersion)", "max");
// query.addSelect("MAX(quotation.quotationVersion)", "max");
return query.getOne();
}
Run Code Online (Sandbox Code Playgroud)
如果要在选择子句中添加MAX、SUM等函数,则需要执行getRawOne()或getRawMany()。这将为您提供原始响应:
getOneMaximumQuotationVersion() {
const query = this.createQueryBuilder("quotation");
query.select("MAX(quotation.quotationVersion)", "max");
// query.addSelect("MAX(quotation.quotationVersion)", "max");
return query.getRawOne();
}
Run Code Online (Sandbox Code Playgroud)
方法getOne和getMany用于选择实际的数据库实体。如果选择计算值,则需要使用getRawOne(或getRawMany用于多个值)。请注意,返回的值是一个对象,其键是您在调用时指定的别名select;在您的情况下,别名称为max.
另外不要忘记操作的异步性质。
所以,我会像这样重写你的函数:
async getOneMaximumQuotationVersion() {
const query = this.createQueryBuilder("quotation");
query.select("MAX(quotation.quotationVersion)", "max");
const result = await query.getRawOne();
return result.max;
}
Run Code Online (Sandbox Code Playgroud)
更多信息可以在官方文档中找到。