@@ -1649,16 +1649,19 @@ private function getSelectConditionStatementColumnSQL($field, $assoc = null)
16491649 $ association = $ this ->class ->associationMappings [$ field ];
16501650 // Many-To-Many requires join table check for joinColumn
16511651 $ columns = array ();
1652- $ class = $ this ->class ;
1652+ $ class = $ this ->class ;
1653+
16531654 if ($ association ['type ' ] === ClassMetadata::MANY_TO_MANY ) {
16541655 if ( ! $ association ['isOwningSide ' ]) {
16551656 $ association = $ assoc ;
16561657 }
1657- $ joinColumns = $ assoc ['isOwningSide ' ]
1658+
1659+ $ joinTableName = $ this ->quoteStrategy ->getJoinTableName ($ association , $ class , $ this ->platform );
1660+ $ joinColumns = $ assoc ['isOwningSide ' ]
16581661 ? $ association ['joinTable ' ]['joinColumns ' ]
16591662 : $ association ['joinTable ' ]['inverseJoinColumns ' ];
16601663
1661- $ joinTableName = $ this -> quoteStrategy -> getJoinTableName ( $ association , $ class , $ this -> platform );
1664+
16621665 foreach ($ joinColumns as $ joinColumn ) {
16631666 $ columns [] = $ joinTableName . '. ' . $ this ->quoteStrategy ->getJoinColumnName ($ joinColumn , $ class , $ this ->platform );
16641667 }
@@ -1691,7 +1694,6 @@ private function getSelectConditionStatementColumnSQL($field, $assoc = null)
16911694 throw ORMException::unrecognizedField ($ field );
16921695 }
16931696
1694-
16951697 /**
16961698 * Gets the conditional SQL fragment used in the WHERE clause when selecting
16971699 * entities in this persister.
@@ -1812,6 +1814,7 @@ public function expandParameters($criteria)
18121814 $ types = array_merge ($ types , $ this ->getTypes ($ field , $ value , $ this ->class ));
18131815 $ params = array_merge ($ params , $ this ->getValues ($ value ));
18141816 }
1817+
18151818 return array ($ params , $ types );
18161819 }
18171820
@@ -1840,6 +1843,7 @@ private function expandToManyParameters($criteria)
18401843 $ types = array_merge ($ types , $ this ->getTypes ($ criterion ['field ' ], $ criterion ['value ' ], $ criterion ['class ' ]));
18411844 $ params = array_merge ($ params , $ this ->getValues ($ criterion ['value ' ]));
18421845 }
1846+
18431847 return array ($ params , $ types );
18441848 }
18451849
@@ -1861,17 +1865,20 @@ private function getTypes($field, $value, ClassMetadata $class)
18611865 case (isset ($ class ->fieldMappings [$ field ])):
18621866 $ types = array_merge ($ types , PersisterHelper::getTypeOfField ($ field , $ class , $ this ->em ));
18631867 break ;
1868+
18641869 case (isset ($ class ->associationMappings [$ field ])):
18651870 $ assoc = $ class ->associationMappings [$ field ];
18661871 $ class = $ this ->em ->getClassMetadata ($ assoc ['targetEntity ' ]);
1867- if (!$ assoc ['isOwningSide ' ]) {
1872+
1873+ if (! $ assoc ['isOwningSide ' ]) {
18681874 $ assoc = $ class ->associationMappings [$ assoc ['mappedBy ' ]];
18691875 $ class = $ this ->em ->getClassMetadata ($ assoc ['targetEntity ' ]);
18701876 }
18711877
18721878 $ columns = $ assoc ['type ' ] === ClassMetadata::MANY_TO_MANY
18731879 ? $ assoc ['relationToTargetKeyColumns ' ]
18741880 : $ assoc ['sourceToTargetKeyColumns ' ];
1881+
18751882 foreach ($ columns as $ column ){
18761883 $ types [] = PersisterHelper::getTypeOfColumn ($ column , $ class , $ this ->em );
18771884 }
@@ -1883,11 +1890,14 @@ private function getTypes($field, $value, ClassMetadata $class)
18831890 }
18841891
18851892 if (is_array ($ value )) {
1886- $ types = array_map (function ($ type ) {
1887- $ type = Type::getType ($ type )->getBindingType ();
1888- return $ type + Connection::ARRAY_PARAM_OFFSET ;
1889- }, $ types );
1893+ return array_map (
1894+ function ($ type ) {
1895+ return Type::getType ($ type )->getBindingType () + Connection::ARRAY_PARAM_OFFSET ;
1896+ },
1897+ $ types
1898+ );
18901899 }
1900+
18911901 return $ types ;
18921902 }
18931903
@@ -1914,6 +1924,7 @@ private function getValues($value)
19141924 $ class = $ this ->em ->getClassMetadata (get_class ($ value ));
19151925 if ($ class ->isIdentifierComposite ) {
19161926 $ newValue = array ();
1927+
19171928 foreach ($ class ->getIdentifierValues ($ value ) as $ innerValue ) {
19181929 $ newValue = array_merge ($ newValue , $ this ->getValues ($ innerValue ));
19191930 }
0 commit comments