@@ -543,9 +543,11 @@ public List<T1> toTreeList(boolean ignore) {
543
543
return EasyTreeUtil .generateTrees (list , entityMetadata , treeNavigateMetadata , treeSelfTargetItem , runtimeContext , treeCTEOption , deepItems );
544
544
}
545
545
546
- private TreeSelfTargetItem getTreeSelfTargetItem (NavigateMetadata treeNavigateMetadata ) {
547
- if (EasyStringUtil .isNotBlank (this .entityMetadata .getTableName ()) || EasyArrayUtil .isNotEmpty (treeNavigateMetadata .getSelfProperties ())) {
548
- return new TreeSelfTargetItem (treeNavigateMetadata .getSelfPropertiesOrPrimary (), treeNavigateMetadata .getTargetPropertiesOrPrimary (runtimeContext ));
546
+ private TreeSelfTargetItem getTreeSelfTargetItem (NavigateMetadata resultTreeNavigateMetadata ) {
547
+ //如果当前返回的对象是表对象或者如果不是表对象就判断self和target已经设置了那么就是用对应的self和target作为组成树时的必要属性
548
+ if (EasyStringUtil .isNotBlank (this .entityMetadata .getTableName ())
549
+ || EasyArrayUtil .isNotEmpty (resultTreeNavigateMetadata .getSelfProperties ())) {
550
+ return new TreeSelfTargetItem (resultTreeNavigateMetadata .getSelfPropertiesOrPrimary (), resultTreeNavigateMetadata .getTargetPropertiesOrPrimary (runtimeContext ));
549
551
}
550
552
EntityTableExpressionBuilder fromTableExpressionBuilder = this .entityQueryExpressionBuilder .getFromTable ();
551
553
@@ -559,12 +561,17 @@ private TreeSelfTargetItem getTreeSelfTargetItem(NavigateMetadata treeNavigateMe
559
561
MergeTuple2 <NavigateMetadata , String > fromTableTreeNavigateMetadataTuple = getTreeNavigateMetadata (fromTableEntityMetadata );
560
562
NavigateMetadata fromTableTreeNavigateMetadata = fromTableTreeNavigateMetadataTuple .t1 ;
561
563
if (fromTableTreeNavigateMetadata != null ) {
562
- return new TreeSelfTargetItem (fromTableTreeNavigateMetadata .getSelfPropertiesOrPrimary (), fromTableTreeNavigateMetadata .getTargetPropertiesOrPrimary (runtimeContext ));
564
+ //如果from的表self和target都在返回结果中那么才使用
565
+ String [] selfProps = fromTableTreeNavigateMetadata .getSelfPropertiesOrPrimary ();
566
+ String [] targetProps = fromTableTreeNavigateMetadata .getTargetPropertiesOrPrimary (runtimeContext );
567
+ if (EasyCollectionUtil .all (selfProps , self -> this .entityMetadata .getColumnOrNull (self ) != null )
568
+ && EasyCollectionUtil .all (targetProps , target -> this .entityMetadata .getColumnOrNull (target ) != null ))
569
+ return new TreeSelfTargetItem (selfProps , targetProps );
563
570
}
564
571
}
565
572
}
566
573
}
567
- return new TreeSelfTargetItem (treeNavigateMetadata .getSelfPropertiesOrPrimary (), treeNavigateMetadata .getTargetPropertiesOrPrimary (runtimeContext ));
574
+ return new TreeSelfTargetItem (resultTreeNavigateMetadata .getSelfPropertiesOrPrimary (), resultTreeNavigateMetadata .getTargetPropertiesOrPrimary (runtimeContext ));
568
575
}
569
576
570
577
0 commit comments