src/wcmf/lib/model/mapper/impl/NodeUnifiedRDBMapper.php
protected function getRelationStatement($thisAttr, $parameters,
          array $otherObjectProxies, $otherRole,
          $criteria=null, $orderby=null, PagingInfo $pagingInfo=null) {
    $queryId = $this->getCacheKey($otherRole.sizeof($otherObjectProxies), null, $criteria, $orderby, $pagingInfo);
    $tableName = $this->getRealTableName();
    $selectStmt = SelectStatement::get($this, $queryId);
    if (!$selectStmt->isCached()) {
      // initialize the statement
      $selectStmt->from($tableName, '');
      $this->addColumns($selectStmt, $tableName);
      $selectStmt->where($this->quoteIdentifier($tableName).'.'.
              $this->quoteIdentifier($thisAttr->getColumn()).' IN('.join(',', array_keys($parameters)).')');
      // order
      $this->addOrderBy($selectStmt, $orderby, $this->getType(), $tableName, $this->getDefaultOrder($otherRole));
      // additional conditions
      $parameters = array_merge($parameters, $this->addCriteria($selectStmt, $criteria, $tableName));
      // limit
      if ($pagingInfo != null) {
        $selectStmt->limit($pagingInfo->getPageSize());
      }
    }
    else {
      // on used statements only set parameters
      $parameters = array_merge($parameters, $this->getParameters($criteria, $tableName));
    }

    // set parameters
    $selectStmt->setParameters($parameters);

    // always update offset, since it's most likely not contained in the cache id
    if ($pagingInfo != null) {
      $selectStmt->offset($pagingInfo->getOffset());
    }
    return $selectStmt;
  }
protected function getRelationStatement($thisAttr, $parameters,
          array $otherObjectProxies, $otherRole,
          $criteria=null, $orderby=null, PagingInfo $pagingInfo=null) {
    $queryId = $this->getCacheKey($otherRole.sizeof($otherObjectProxies), null, $criteria, $orderby, $pagingInfo);
    $tableName = $this->getRealTableName();
    $selectStmt = SelectStatement::get($this, $queryId);
    if (!$selectStmt->isCached()) {
      // initialize the statement
      $selectStmt->from($tableName, '');
      $this->addColumns($selectStmt, $tableName);
      $selectStmt->where($this->quoteIdentifier($tableName).'.'.
              $this->quoteIdentifier($thisAttr->getColumn()).' IN('.join(',', array_keys($parameters)).')');
      // order
      $this->addOrderBy($selectStmt, $orderby, $this->getType(), $tableName, $this->getDefaultOrder($otherRole));
      // additional conditions
      $parameters = array_merge($parameters, $this->addCriteria($selectStmt, $criteria, $tableName));
      // limit
      if ($pagingInfo != null) {
        $selectStmt->limit($pagingInfo->getPageSize());
      }
    }
    else {
      // on used statements only set parameters
      $parameters = array_merge($parameters, $this->getParameters($criteria, $tableName));
    }

    // set parameters
    $selectStmt->setParameters($parameters);

    // always update offset, since it's most likely not contained in the cache id
    if ($pagingInfo != null) {
      $selectStmt->offset($pagingInfo->getOffset());
    }
    return $selectStmt;
  }
protected function getRelationStatement ( $ thisAttr , $ parameters , array $ otherObjectProxies , $ otherRole , $ criteria = null , $ orderby = null , PagingInfo $ pagingInfo = null ) { $ queryId = $ this -> getCacheKey ( $ otherRole . sizeof ( $ otherObjectProxies ) , null , $ criteria , $ orderby , $ pagingInfo ) ; $ tableName = $ this -> getRealTableName ( ) ; $ selectStmt = SelectStatement :: get ( $ this , $ queryId ) ; if ( ! $ selectStmt -> isCached ( ) ) { // initialize the statement $ selectStmt -> from ( $ tableName , '' ) ; $ this -> addColumns ( $ selectStmt , $ tableName ) ; $ selectStmt -> where ( $ this -> quoteIdentifier ( $ tableName ) . '.' . $ this -> quoteIdentifier ( $ thisAttr -> getColumn ( ) ) . ' IN(' . join ( ',' , array_keys ( $ parameters ) ) . ')' ) ; // order $ this -> addOrderBy ( $ selectStmt , $ orderby , $ this -> getType ( ) , $ tableName , $ this -> getDefaultOrder ( $ otherRole ) ) ; // additional conditions $ parameters = array_merge ( $ parameters , $ this -> addCriteria ( $ selectStmt , $ criteria , $ tableName ) ) ; // limit if ( $ pagingInfo != null ) { $ selectStmt -> limit ( $ pagingInfo -> getPageSize ( ) ) ; } } else { // on used statements only set parameters $ parameters = array_merge ( $ parameters , $ this -> getParameters ( $ criteria , $ tableName ) ) ; } // set parameters $ selectStmt -> setParameters ( $ parameters ) ; // always update offset, since it's most likely not contained in the cache id if ( $ pagingInfo != null ) { $ selectStmt -> offset ( $ pagingInfo -> getOffset ( ) ) ; } return $ selectStmt ; }
Get the select statement for a many-to-one or one-to-many relation.
This method is the common part used in both relations.
@see RDBMapper::getRelationSelectSQL()
Get the select statement for a many - to - one or one - to - many relation . This method is the common part used in both relations .