Пример #1
0
  /**
   * selects a collection of TOption objects pre-filled with their TBLOB objects.
   *
   * <p>This method is protected by default in order to keep the public api reasonable. You can
   * provide public methods for those you actually need in TOptionPeer.
   *
   * @throws TorqueException Any exceptions caught during processing will be rethrown wrapped into a
   *     TorqueException.
   */
  protected static List<TOption> doSelectJoinTBLOB(Criteria criteria, Connection conn)
      throws TorqueException {
    setDbName(criteria);

    TOptionPeer.addSelectColumns(criteria);
    int offset = numColumns + 1;
    TBLOBPeer.addSelectColumns(criteria);

    criteria.addJoin(TOptionPeer.ICONKEY, TBLOBPeer.OBJECTID);

    correctBooleans(criteria);

    List<Record> rows;
    if (conn == null) {
      rows = BasePeer.doSelect(criteria);
    } else {
      rows = BasePeer.doSelect(criteria, conn);
    }

    List<TOption> results = new ArrayList<TOption>();

    for (int i = 0; i < rows.size(); i++) {
      Record row = rows.get(i);

      Class omClass = TOptionPeer.getOMClass();
      TOption obj1 = (TOption) TOptionPeer.row2Object(row, 1, omClass);
      omClass = TBLOBPeer.getOMClass();
      TBLOB obj2 = (TBLOB) TBLOBPeer.row2Object(row, offset, omClass);

      boolean newObject = true;
      for (int j = 0; j < results.size(); j++) {
        TOption temp_obj1 = results.get(j);
        TBLOB temp_obj2 = (TBLOB) temp_obj1.getTBLOB();
        if (temp_obj2.getPrimaryKey().equals(obj2.getPrimaryKey())) {
          newObject = false;
          temp_obj2.addTOption(obj1);
          break;
        }
      }
      if (newObject) {
        obj2.initTOptions();
        obj2.addTOption(obj1);
      }
      results.add(obj1);
    }
    return results;
  }