当查询已经连接并选择该关系时,会两次加载该关系(`relationLoadStrategy: 'query'`)。
- 问题说明
在“关系障碍战略”下,每个被询问实体的急切关系在主要关系之后通过单独的查询得到,结果被分配到任何主要查询水分之后。 没有检查主查询是否已经加入并选择了这个关系, 所以对这个关系收取了两次查询 。
这很容易在1.x。 由于#11326的查询策略不再将急切的关系加入到主查询中去,所以任何必须在SQL中命名关系——一个"ORDER BY"或一个"WHERE"在其一列上——的查询都必须自己创建连接,创建它就足以引起双接.
- 复制步骤
导入“ reflect-metadata”; 从“ typeorm ” 导入{列、 数据源、 实体、 ManyToOne、 OneToMany、 PrimeGenerated Column} ;
让变压器呼叫=0;
@ 实体( ) 类变量 { @ PrimaryGenerated Column () id: 编号; @ Column () sku: 字符串 ; @ OneToMany (( ) ) @ @ info 价格、价格、变相价格、{急切:真实}价格:价格[;]; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
@ 实体( )
类价格 {
@ PrimaryGenerated Column () id: 编号;
@ column ({)
ZZ:{
改为:(五:数目)
从 : (v: 数字) {{
变压器呼叫++;
返回 v; 输入
{\fn华文楷体\fs16\1cHE0E0E0}
{\fn华文楷体\fs16\1cHE0E0E0}
) (中文(简体) ).
数量:数目;
@ ManyTOone( ()) · · · 变体, · · · 变体. 价 · 变体: 变体;
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
aync 函数主 () { 康斯特选择:字符串[] = [;]; Const 数据来源 = 新数据来源 ({ 类型 : “ 更好- sqlite3 ” , 数据库: ':emory:', 实体: [价格,变式], 同步: 真实的, 伐木:['query'], 日志器 : { 日志查询 :( 清: 字符串) #{ 如果 (query. startsWith ('SELECT') QQ 查询, 包括 ('价格') { 选择.push( 清) ; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn华文楷体\fs16\1cHE0E0E0} 日志查询错误:() QQ 未定义, 对数查询慢 :() QQ 未定义, logSchema 构建 :() QQ 未定义, 日志迁移 :( ) QQ 未定义, 日志:()QQ未定义, 永远
- ; 等待数据来源. 初始化( );
const 变体 = 等待数据Source.getRepository (Variant).save ({ sku:'SKU1'}); 等待数据Source.getRepository(price).save({量:500,变体});
变压器呼叫数=0; 选择.长=0;
const行=等待数据来源 .GetRepository(变量) .create QueryBuilder ("变量") .setFindoptions ({ relateLoadStrategy: 'query' }) ({ 关系错误战略: ) 。左侧JoinAndSelect("可变.价","可变.价") .orderBy("可变 价格.amount","ASC") .Get Many (); (中文(简体) ).
控制台.log('rows',行.words,'prices',行[0].prices.words;) ;
a. 控制台.log('SELECTs touch price:', selects. long);
a. 控制台.log( “分栏的Transformer” 呼叫:',变压器呼叫);
选择.for.ach( (q, i) QQ Control.log ( [${i+1}] ${q}] );
等待数据来源. dstroy ();
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
主 (.). catch(e) {{{ 控制台.error( '${e. constructor.name} ) : . . . . . . .
内容来源: typeorm/typeorm