Iterar subreporte en JasperReports con Spring

Hola compañeros programadores tengo un problema o mejor dicho no se como hacer algo con Jasper Reports , lo estoy utilizando con Spring, digamos que lo que tengo que hacer es lo siguiente :
Tengo un reporte llamado contrato grupal , en este aparecen campos de un cliente , el detalle es que se trata de un contrato colectivo , es decir en el contrato firman varias personas que se comprometen a seguir el contrato.
El detalle esta en la tercera pagina del contrato la cual se tiene que generar una vez por cada cliente que contenga el contrato .Pensaba utilizar un subreporte , pero no se como decirle a Jasper que ejecute ese subreporte por cada elemento que venga en la fuente de datos o JRBeanCollectionDataSource... alguien sabe como?

La otra solucion que se me habia ocurrido es hacer un reporte de esa pagina y ejecutarlo por cada cliente, pero lo intente y este se me queda en loop infinito y no arroja nada . El codigo que utilizo para llamar una sola vez el reporte es el siguiente

 String nombreTemplate = producto.getTemplateContrato();
        LOGGER.info("Nombre del contrato a usar [" + nombreTemplate + ']');

        response.setHeader("Content-type", "application/pdf");
        response.setHeader("Content-Disposition", "attachment; filename=\"contratoGrupal-" +
                idSolicitudGrupal + ".pdf\"");

        modelMap.put( "REPORT_PARAMETERS_MAP",new JRBeanCollectionDataSource(listaAvales));
        modelMap.put("contratoGrupalKey", new JRBeanCollectionDataSource(lista, false));
        modelMap.put("RUTA_LOGO_LATIA", (String) applicationContext.getBean("rutaLogoTia"));

            return nombreTemplate;

Debo aclarar que este codigo se encuentra en un metodo del controller que tiene la siguiente firma

   @RequestMapping(value = "/solicitudGrupal/{idSolicitudGrupal}")
    public String generarContratoSolicitudGrupal(ModelMap modelMap, HttpServletResponse response,
                                                 @PathVariable("idSolicitudGrupal") Long idSolicitudGrupal) throws
    EntidadNoEncontradaException {};

La configuracion de jasper se hace a traves de un properties como se marca en la documentacion de spring.

Espero que alguien me pueda orientar para poder implementar alguna de las dos soluciones que se me ocurren o darme alguna otra idea