@@ -1399,15 +1399,38 @@ component accessors="true" {
1399
1399
boolean force = false ,
1400
1400
boolean parallel = false
1401
1401
) {
1402
- var entity = this ;
1403
- arrayEach ( arrayWrap ( arguments .name ), ( n ) = > {
1404
- if ( force || ! isRelationshipLoaded ( n ) ) {
1405
- var relationship = invoke ( entity , n );
1406
- relationship .setRelationMethodName ( n );
1407
- assignRelationship ( n , relationship .get () );
1402
+ arguments .name = arrayWrap ( arguments .name );
1403
+ if ( arguments .name .len () > 1 && arguments .parallel ) {
1404
+ var threadNames = [];
1405
+ for ( var n in arguments .name ) {
1406
+ var threadName = " #n #_#replace ( createUUID (), " -" , " " , " all" ) #" ;
1407
+ threadNames .append ( threadName );
1408
+ cfthread (
1409
+ action = " run" ,
1410
+ name = " #threadName #" ,
1411
+ relationshipName = " #n #" ,
1412
+ entity = this
1413
+ ) {
1414
+ var relationship = invoke ( attributes .entity , attributes .relationshipName );
1415
+ relationship .setRelationMethodName ( attributes .relationshipName );
1416
+ assignRelationship ( attributes .relationshipName , relationship .get () );
1417
+ }
1418
+ }
1419
+ cfthread (
1420
+ action = " join" ,
1421
+ name = " #threadNames .toList () #" ,
1422
+ timeout = " #60 * 1000 #"
1423
+ );
1424
+ } else {
1425
+ for ( var n in arguments .name ) {
1426
+ if ( arguments .force || ! isRelationshipLoaded ( n ) ) {
1427
+ var relationship = invoke ( this , n );
1428
+ relationship .setRelationMethodName ( n );
1429
+ assignRelationship ( n , relationship .get () );
1430
+ }
1408
1431
}
1409
- }, arguments . parallel );
1410
- return entity ;
1432
+ }
1433
+ return this ;
1411
1434
}
1412
1435
1413
1436
/**
0 commit comments