private void deleteVisio3CX(Date dateLimite)
    {
        final ClassTable<Visioconference> tableVisio = SQL.classTable(Visioconference.class);
        final SQLField<Timestamp> debut = tableVisio.field(Visioconference.ATTR_DATEDEBUT);
        final SQLField<Integer> origine = tableVisio.field(Visioconference.ATTR_TYPCONF);

        final ClassTable<VisioconfParticipant> tableVisioParticipant = SQL.classTable(VisioconfParticipant.class);
        final SQLField<IK<Visioconference>> visioIk = tableVisioParticipant.field(VisioconfParticipant.ATTR_VISIOCONF);

        List<IK<Visioconference>> visioIds = SQL.select(tableVisio.ik())
            .from(tableVisio)
            .where(debut.gt(DateUtil.getTimeStamp(dateLimite)))
            .and(origine.eq(Integer.valueOf(VisioconferenceOrigine.TROISCX)))
            .fetchOneColumn();

        SQL.deleteFrom(tableVisioParticipant)
            .where(visioIk.in(visioIds))
            .execute();

        SQL.deleteFrom(tableVisio)
            .where(debut.gt(DateUtil.getTimeStamp(dateLimite)))
            .and(origine.eq(Integer.valueOf(VisioconferenceOrigine.TROISCX)))
            .execute();

    }
Résume moi cette fonction