@@ -49,30 +49,29 @@ private function handleLinks(QueryBuilder $queryBuilder, array $identifiers, Que
49
49
continue ;
50
50
}
51
51
52
+ $ fromClassMetadata = $ manager ->getClassMetadata ($ link ->getFromClass ());
52
53
$ identifierProperties = $ link ->getIdentifiers ();
53
54
$ hasCompositeIdentifiers = 1 < \count ($ identifierProperties );
54
55
55
56
if (!$ link ->getFromProperty () && !$ link ->getToProperty ()) {
56
- $ doctrineClassMetadata = $ manager ->getClassMetadata ($ link ->getFromClass ());
57
57
$ currentAlias = $ link ->getFromClass () === $ entityClass ? $ alias : $ queryNameGenerator ->generateJoinAlias ($ alias );
58
58
59
59
foreach ($ identifierProperties as $ identifierProperty ) {
60
60
$ placeholder = $ queryNameGenerator ->generateParameterName ($ identifierProperty );
61
61
$ queryBuilder ->andWhere ("$ currentAlias. $ identifierProperty = : $ placeholder " );
62
- $ queryBuilder ->setParameter ($ placeholder , $ this ->getIdentifierValue ($ identifiers , $ hasCompositeIdentifiers ? $ identifierProperty : null ), $ doctrineClassMetadata ->getTypeOfField ($ identifierProperty ));
62
+ $ queryBuilder ->setParameter ($ placeholder , $ this ->getIdentifierValue ($ identifiers , $ hasCompositeIdentifiers ? $ identifierProperty : null ), $ fromClassMetadata ->getTypeOfField ($ identifierProperty ));
63
63
}
64
64
65
65
$ previousAlias = $ currentAlias ;
66
- $ previousJoinProperties = $ doctrineClassMetadata ->getIdentifierFieldNames ();
66
+ $ previousJoinProperties = $ fromClassMetadata ->getIdentifierFieldNames ();
67
67
continue ;
68
68
}
69
69
70
70
$ joinProperties = $ doctrineClassMetadata ->getIdentifierFieldNames ();
71
71
72
72
if ($ link ->getFromProperty () && !$ link ->getToProperty ()) {
73
- $ doctrineClassMetadata = $ manager ->getClassMetadata ($ link ->getFromClass ());
74
73
$ joinAlias = $ queryNameGenerator ->generateJoinAlias ('m ' );
75
- $ associationMapping = $ doctrineClassMetadata ->getAssociationMapping ($ link ->getFromProperty ()); // @phpstan-ignore-line
74
+ $ associationMapping = $ fromClassMetadata ->getAssociationMapping ($ link ->getFromProperty ()); // @phpstan-ignore-line
76
75
$ relationType = $ associationMapping ['type ' ];
77
76
78
77
if ($ relationType & ClassMetadataInfo::TO_MANY ) {
@@ -81,7 +80,7 @@ private function handleLinks(QueryBuilder $queryBuilder, array $identifiers, Que
81
80
foreach ($ identifierProperties as $ identifierProperty ) {
82
81
$ placeholder = $ queryNameGenerator ->generateParameterName ($ identifierProperty );
83
82
$ whereClause [] = "$ nextAlias. {$ identifierProperty } = : $ placeholder " ;
84
- $ queryBuilder ->setParameter ($ placeholder , $ this ->getIdentifierValue ($ identifiers , $ hasCompositeIdentifiers ? $ identifierProperty : null ), $ doctrineClassMetadata ->getTypeOfField ($ identifierProperty ));
83
+ $ queryBuilder ->setParameter ($ placeholder , $ this ->getIdentifierValue ($ identifiers , $ hasCompositeIdentifiers ? $ identifierProperty : null ), $ fromClassMetadata ->getTypeOfField ($ identifierProperty ));
85
84
}
86
85
87
86
$ property = $ associationMapping ['mappedBy ' ] ?? $ joinProperties [0 ];
@@ -106,7 +105,7 @@ private function handleLinks(QueryBuilder $queryBuilder, array $identifiers, Que
106
105
foreach ($ identifierProperties as $ identifierProperty ) {
107
106
$ placeholder = $ queryNameGenerator ->generateParameterName ($ identifierProperty );
108
107
$ queryBuilder ->andWhere ("$ joinAlias. $ identifierProperty = : $ placeholder " );
109
- $ queryBuilder ->setParameter ($ placeholder , $ this ->getIdentifierValue ($ identifiers , $ hasCompositeIdentifiers ? $ identifierProperty : null ), $ doctrineClassMetadata ->getTypeOfField ($ identifierProperty ));
108
+ $ queryBuilder ->setParameter ($ placeholder , $ this ->getIdentifierValue ($ identifiers , $ hasCompositeIdentifiers ? $ identifierProperty : null ), $ fromClassMetadata ->getTypeOfField ($ identifierProperty ));
110
109
}
111
110
112
111
$ previousAlias = $ joinAlias ;
@@ -120,7 +119,7 @@ private function handleLinks(QueryBuilder $queryBuilder, array $identifiers, Que
120
119
foreach ($ identifierProperties as $ identifierProperty ) {
121
120
$ placeholder = $ queryNameGenerator ->generateParameterName ($ identifierProperty );
122
121
$ queryBuilder ->andWhere ("$ joinAlias. $ identifierProperty = : $ placeholder " );
123
- $ queryBuilder ->setParameter ($ placeholder , $ this ->getIdentifierValue ($ identifiers , $ hasCompositeIdentifiers ? $ identifierProperty : null ), $ doctrineClassMetadata ->getTypeOfField ($ identifierProperty ));
122
+ $ queryBuilder ->setParameter ($ placeholder , $ this ->getIdentifierValue ($ identifiers , $ hasCompositeIdentifiers ? $ identifierProperty : null ), $ fromClassMetadata ->getTypeOfField ($ identifierProperty ));
124
123
}
125
124
126
125
$ previousAlias = $ joinAlias ;
0 commit comments