Example #1
0
  /**
   * 构造子查询sql
   *
   * @param table
   * @param refKey
   * @param ids
   * @param ordersMap
   * @param fieldName
   * @return
   */
  private String buildChildQuerySql(
      String table,
      String refKey,
      StringBuffer ids,
      Map<String, Orders> ordersMap,
      String fieldName) {
    StringBuffer childSql = new StringBuffer();
    childSql
        .append("select * from ")
        .append(NameConverter.toTableName(Constants.DEFAULT_TABLE_PREFIX, table))
        .append(" where ")
        .append(NameConverter.toColumnName(Constants.DEFAULT_COLUMN_PREFIX, refKey))
        .append(" in (");
    childSql.append(ids);
    childSql.append(")");

    Orders orders = ordersMap.get(fieldName);
    if (orders != null && orders.value().length > 0) {
      childSql.append(" order by ");
      for (Order order : orders.value()) {
        childSql
            .append(NameConverter.toColumnName(Constants.DEFAULT_COLUMN_PREFIX, order.key()))
            .append(" ")
            .append(order.order())
            .append(",");
      }
      childSql.deleteCharAt(childSql.length() - 1);
    }

    return childSql.toString();
  }