NoAsignableDbEntity extends NoAsignableDBEntityBase { public List getIdsDescendientes(String idElemento) { TableDef tableDef1 = new TableDef("n"); TableDef tableDef2 = new TableDef( ElementoNoAsignableDBEntity.TABLE_NAME, "nplus1"); final DbColumnDef TABLA1_CAMPO_ID = new DbColumnDef("value", tableDef1.getName(), CAMPO_ID); final DbColumnDef TABLA2_CAMPO_ID = new DbColumnDef("value", tableDef2.getName(), CAMPO_ID); final DbColumnDef TABLA2_CAMPO_IDPADRE = new DbColumnDef(tableDef2, CAMPO_IDPADRE); final DbColumnDef[] cols = new DbColumnDef[] { TABLA1_CAMPO_ID }; final StringBuffer sqlCompleta = new StringBuffer ("WITH ") .append(tableDef1.getTableName()) .append("(") .append(TABLA1_CAMPO_ID.getBindPropertyVO()) .append(") AS (") .append(DBUtils.SELECT) .append(ElementoNoAsignableDBEntity.CAMPO_ID.getQualifiedName()) .append(" AS ") .append(TABLA1_CAMPO_ID.getBindPropertyVO()) .append(DBUtils.FROM) .append(ElementoNoAsignableDBEntity.TABLE_NAME) .append(DBUtils.WHERE) .append(DBUtils.generateEQTokenField( ElementoNoAsignableDBEntity.CAMPO_IDPADRE, idElemento)) .append(DBUtils.UNION_ALL) .append(DBUtils.SELECT) .append(TABLA2_CAMPO_ID.getQualifiedName()) .append(" AS ") .append(TABLA2_CAMPO_ID.getBindPropertyVO()) .append(DBUtils.FROM) .append(tableDef2.getDeclaration()) .append(", ") .append(tableDef1.getDeclaration()) .append(DBUtils.WHERE) .append(TABLA1_CAMPO_ID.getBindPropertyVO()).append("=") .append(TABLA2_CAMPO_IDPADRE.getQualifiedName()).append(") ") .append(DBUtils.SELECT) .append(TABLA1_CAMPO_ID.getBindPropertyVO()) .append(DBUtils.FROM).append(tableDef1.getTableName()); final SigiaDbOutputRecordset rowSet = new SigiaDbOutputRecordset(cols, MutableObject.class); List ids = getVOS(sqlCompleta.toString(), MutableObject.class, rowSet); List idList = new ArrayList(); for (int i = 0; i < ids.size(); i++) idList.add((String) ((Mutable) ids.get(i)).getValue()); return idList; } NoAsignableDbEntity(DbDataSource dataSource);  NoAsignableDbEntity(DbConnection conn); ElementoNoAsignableVO getNoAsignable(String qual); List getNoAsignables(String qual, String orderBy); List getPadresRecusivos(String idPadre); List getIdsDescendientes(String idElemento); List getElementosAsignablesByAmbitosPadre(String[] idsAmbitoDeposito);  }
@Test public void getIdsDescendientes() { getDAO().getIdsDescendientes(idElemento); }