Example usage for org.hibernate Query setMaxResults

List of usage examples for org.hibernate Query setMaxResults

Introduction

In this page you can find the example usage for org.hibernate Query setMaxResults.

Prototype

@Override
    Query<R> setMaxResults(int maxResult);

Source Link

Usage

From source file:com.local.ask.model.controller.ModelDAOImpl.java

@Override
public List<Question> getRecentQuestions() {
    List<Question> ret = new ArrayList<>(100);
    try {/*from   w w w .  jav  a2  s . c o  m*/
        Query query = getCurrentSession().createQuery("FROM Question q ORDER BY q.timeLastEdited desc");
        query.setMaxResults(100);
        ret = query.list();
    } catch (HibernateException ex) {
        ex.printStackTrace();
    }
    return ret;
}

From source file:com.local.ask.model.controller.ModelDAOImpl.java

@Override
public List<Tag> getRecentTags() {
    System.out.println("queried");
    List<Tag> ret = new ArrayList<>(10);
    try {//from w  w w  . j  a  v a 2 s  . co  m
        Query query = getCurrentSession().createQuery("FROM Tag t ORDER BY t.timeLastViewed desc");
        query.setMaxResults(10);
        ret = query.list();
    } catch (HibernateException ex) {
        ex.printStackTrace();
    }
    return ret;
}

From source file:com.lp.server.anfrage.fastlanereader.AnfrageartHandler.java

License:Open Source License

/**
 * gets the page of data for the specified row using the current
 * queryParameters./*from  w w  w. j ava  2  s.co m*/
 * 
 * @param rowIndex
 *            diese Zeile soll selektiert sein
 * @return QueryResult das Ergebnis der Abfrage
 * @throws EJBExceptionLP
 *             Ausnahme
 * @see UseCaseHandler#getPageAt(java.lang.Integer)
 */
public QueryResult getPageAt(Integer rowIndex) throws EJBExceptionLP {
    QueryResult result = null;
    SessionFactory factory = FLRSessionFactory.getFactory();
    Session session = null;
    try {
        int colCount = getTableInfo().getColumnClasses().length;
        int pageSize = AnfrageartHandler.PAGE_SIZE;
        int startIndex = Math.max(rowIndex.intValue() - (pageSize / 2), 0);
        int endIndex = startIndex + pageSize - 1;

        session = factory.openSession();
        String queryString = this.getFromClause() + this.buildWhereClause() + this.buildOrderByClause();

        Query query = session.createQuery(queryString);
        session = setFilter(session);

        query.setFirstResult(startIndex);
        query.setMaxResults(pageSize);
        List<?> resultList = query.list();
        Iterator<?> resultListIterator = resultList.iterator();

        Object[][] rows = new Object[resultList.size()][colCount];
        int row = 0;
        int col = 0;

        String sLocUI = Helper.locale2String(theClientDto.getLocUi());

        while (resultListIterator.hasNext()) {
            Object o[] = (Object[]) resultListIterator.next();
            FLRAnfrageart anfrageart = (FLRAnfrageart) o[0];

            Iterator<?> sprsetIterator = anfrageart.getAnfrageart_anfrageart_set().iterator();

            rows[row][col++] = anfrageart.getC_nr();
            rows[row][col++] = anfrageart.getC_nr();
            rows[row][col++] = anfrageart.getI_sort();
            rows[row][col++] = findSpr(sLocUI, sprsetIterator);

            row++;
            col = 0;
        }
        result = new QueryResult(rows, this.getRowCount(), startIndex, endIndex, 0);
    } catch (Exception e) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FLR, e);
    } finally {
        try {
            session.close();
        } catch (HibernateException he) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER, he);
        }
    }
    return result;
}

From source file:com.lp.server.anfrage.fastlanereader.AnfrageHandler.java

License:Open Source License

/**
 * gets the data page for the specified row using the current query. The row
 * at rowIndex will be located in the middle of the page.
 * /*w  ww  . j a v  a  2  s .  c o m*/
 * @param rowIndex
 *            diese Zeile soll selektiert sein
 * @return QueryResult das Ergebnis der Abfrage
 * @throws EJBExceptionLP
 *             Ausnahme
 * @see UseCaseHandler#getPageAt(java.lang.Integer)
 */
public QueryResult getPageAt(Integer rowIndex) throws EJBExceptionLP {
    QueryResult result = null;
    SessionFactory factory = FLRSessionFactory.getFactory();
    Session session = null;
    try {
        int colCount = getTableInfo().getColumnClasses().length;
        int pageSize = AnfrageHandler.PAGE_SIZE;
        int startIndex = Math.max(rowIndex.intValue() - (pageSize / 2), 0);
        int endIndex = startIndex + pageSize - 1;

        session = factory.openSession();
        String queryString = this.getFromClause() + this.buildWhereClause() + this.buildOrderByClause();
        // myLogger.info("HQL: " + queryString);
        Query query = session.createQuery(queryString);
        query.setFirstResult(startIndex);
        query.setMaxResults(pageSize);
        List<?> resultList = query.list();
        Iterator<?> resultListIterator = resultList.iterator();

        Object[][] rows = new Object[resultList.size()][colCount];
        int row = 0;
        int col = 0;

        while (resultListIterator.hasNext()) {
            // FLRAnfrage anfrage = (FLRAnfrage) resultListIterator.next();
            FLRAnfrage anfrage = (FLRAnfrage) ((Object[]) resultListIterator.next())[0];

            rows[row][col++] = anfrage.getI_id();

            // Kuerzel fuer die Auftragart
            String anfrageart = null;

            if (anfrage.getAnfrageart_c_nr().equals(AnfrageServiceFac.ANFRAGEART_LIEFERGRUPPE)) {
                anfrageart = AnfrageServiceFac.ANFRAGEART_LIEFERGRUPPE_SHORT;
            }

            rows[row][col++] = anfrageart;
            rows[row][col++] = anfrage.getC_nr();

            if (anfrage.getAnfrageart_c_nr().equals(AnfrageServiceFac.ANFRAGEART_LIEFERGRUPPE)) {
                if (anfrage.getFlrliefergruppe() != null) {
                    String sUebersetzung = anfrage.getFlrliefergruppe().getC_nr();
                    Iterator iterUebersetzungenI = anfrage.getFlrliefergruppe()
                            .getLiefergruppe_liefergruppespr_set().iterator();

                    while (iterUebersetzungenI.hasNext()) {
                        FLRLiefergruppespr bestellungartspr = (FLRLiefergruppespr) iterUebersetzungenI.next();
                        if (bestellungartspr.getLocale().getC_nr()
                                .compareTo(theClientDto.getLocUiAsString()) == 0) {
                            if (bestellungartspr.getC_bez() != null
                                    && bestellungartspr.getC_bez().length() > 0) {
                                sUebersetzung = bestellungartspr.getC_bez();
                                break;
                            }
                        }
                    }

                    rows[row][col++] = sUebersetzung;
                } else {
                    rows[row][col++] = null;
                }

            } else {

                rows[row][col++] = anfrage.getFlrlieferant() == null ? null
                        : anfrage.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1();
            }

            // IMS 1757 die Anschrift des Lieferanten anzeigen im Format
            // A-5020 Salzburg, Bahnhofstrasse 1
            String cAnschrift = null; // eine Liefergruppenanfrage hat
            // keinen Lieferanten

            if (anfrage.getFlrlieferant() != null) {
                FLRLandplzort flranschrift = anfrage.getFlrlieferant().getFlrpartner().getFlrlandplzort();

                if (flranschrift != null) {
                    cAnschrift = flranschrift.getFlrland().getC_lkz() + "-" + flranschrift.getC_plz() + " "
                            + flranschrift.getFlrort().getC_name();
                }
            }
            rows[row][col++] = cAnschrift;

            rows[row][col++] = anfrage.getC_bez();
            rows[row][col++] = anfrage.getT_belegdatum();
            String sStatus = anfrage.getAnfragestatus_c_nr();
            rows[row][col++] = getStatusMitUebersetzung(sStatus, anfrage.getT_versandzeitpunkt(),
                    anfrage.getC_versandtype());

            BigDecimal nGesamtwertAnfrageInAnfragewaehrung = new BigDecimal(0);

            if (anfrage.getN_gesamtanfragewertinanfragewaehrung() != null
                    && !anfrage.getAnfragestatus_c_nr().equals(AnfrageServiceFac.ANFRAGESTATUS_STORNIERT)) {
                nGesamtwertAnfrageInAnfragewaehrung = anfrage.getN_gesamtanfragewertinanfragewaehrung();
            }

            rows[row][col++] = nGesamtwertAnfrageInAnfragewaehrung;
            rows[row++][col++] = anfrage.getWaehrung_c_nr_anfragewaehrung();

            col = 0;
        }
        result = new QueryResult(rows, this.getRowCount(), startIndex, endIndex, 0);
    } catch (Exception e) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FLR, e);
    } finally {
        try {
            session.close();
        } catch (HibernateException he) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER, he);
        }
    }
    return result;
}

From source file:com.lp.server.anfrage.fastlanereader.AnfragepositionartHandler.java

License:Open Source License

/**
 * gets the page of data for the specified row using the current
 * queryParameters./* w  w w .j  a va2 s . co m*/
 * 
 * @param rowIndex
 *            diese Zeile soll selektiert sein
 * @return QueryResult das Ergebnis der Abfrage
 * @throws EJBExceptionLP
 *             Ausnahme
 * @see UseCaseHandler#getPageAt(java.lang.Integer)
 */
public QueryResult getPageAt(Integer rowIndex) throws EJBExceptionLP {
    QueryResult result = null;
    SessionFactory factory = FLRSessionFactory.getFactory();
    Session session = null;
    try {
        int colCount = getTableInfo().getColumnClasses().length;
        int pageSize = AnfragepositionartHandler.PAGE_SIZE;
        int startIndex = Math.max(rowIndex.intValue() - (pageSize / 2), 0);
        int endIndex = startIndex + pageSize - 1;

        session = factory.openSession();
        String queryString = this.getFromClause() + this.buildWhereClause() + this.buildOrderByClause();
        // myLogger.info("HQL: " + queryString);
        Query query = session.createQuery(queryString);
        query.setFirstResult(startIndex);
        query.setMaxResults(pageSize);
        List<?> resultList = query.list();
        Iterator<?> resultListIterator = resultList.iterator();
        Object[][] rows = new Object[resultList.size()][colCount];
        int row = 0;
        int col = 0;
        while (resultListIterator.hasNext()) {
            FLRAnfragepositionart positionart = (FLRAnfragepositionart) resultListIterator.next();
            rows[row][col++] = positionart.getPositionsart_c_nr();
            rows[row][col++] = getSystemMultilanguageFac().uebersetzePositionsartOptimal(
                    positionart.getPositionsart_c_nr(), theClientDto.getLocUi(), theClientDto.getLocMandant());

            rows[row][col++] = positionart.getI_sort();
            row++;
            col = 0;
        }
        result = new QueryResult(rows, this.getRowCount(), startIndex, endIndex, 0);
    } catch (Exception e) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FLR, e);
    } finally {
        try {
            session.close();
        } catch (HibernateException he) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER, he);
        }
    }
    return result;
}

From source file:com.lp.server.anfrage.fastlanereader.AnfragepositionHandler.java

License:Open Source License

public QueryResult getPageAt(Integer rowIndex) throws EJBExceptionLP {
    QueryResult result = null;//from   w w  w  .j a  v a2  s  .  c om
    SessionFactory factory = FLRSessionFactory.getFactory();
    Session session = null;
    String mandantCNr = theClientDto.getMandant();
    Locale locUI = theClientDto.getLocUi();

    try {
        int colCount = getTableInfo().getColumnClasses().length;
        int pageSize = AnfrageHandler.PAGE_SIZE;
        int startIndex = Math.max(rowIndex.intValue() - (pageSize / 2), 0);
        int endIndex = startIndex + pageSize - 1;

        session = factory.openSession();
        String queryString = this.getFromClause() + this.buildWhereClause() + this.buildOrderByClause();
        // myLogger.info("HQL= " + queryString);
        Query query = session.createQuery(queryString);
        query.setFirstResult(startIndex);
        query.setMaxResults(pageSize);
        List<?> resultList = query.list();
        Iterator<?> resultListIterator = resultList.iterator();
        Object[][] rows = new Object[resultList.size()][colCount];
        String[] tooltipData = new String[resultList.size()];
        int row = 0;
        int col = 0;

        int iNachkommastellenMenge = getMandantFac().getNachkommastellenMenge(mandantCNr);
        int iNachkommastellenPreis = getMandantFac().getNachkommastellenPreisEK(mandantCNr);

        while (resultListIterator.hasNext()) {
            FLRAnfrageposition position = (FLRAnfrageposition) resultListIterator.next();
            rows[row][col++] = position.getI_id();
            rows[row][col++] = getAnfragepositionFac().getPositionNummer(position.getI_id(), theClientDto);
            rows[row][col++] = getUIObjectBigDecimalNachkommastellen(position.getN_menge(),
                    iNachkommastellenMenge);
            rows[row][col++] = position.getEinheit_c_nr() == null ? "" : position.getEinheit_c_nr().trim();

            String sIdentnummer = "";
            if (position.getFlrartikel() != null) {
                sIdentnummer = position.getFlrartikel().getC_nr();
            }
            rows[row][col++] = sIdentnummer;

            // in der Spalte Bezeichnung koennen verschiedene Dinge stehen
            String sBezeichnung = null;

            if (position.getAnfragepositionart_c_nr().equals(LocaleFac.POSITIONSART_TEXTEINGABE)) {
                if (position.getX_textinhalt() != null && position.getX_textinhalt().length() > 0) {
                    sBezeichnung = Helper.strippHTML(position.getX_textinhalt());
                }
            } else if (position.getAnfragepositionart_c_nr().equals(LocaleFac.POSITIONSART_SEITENUMBRUCH)) {
                sBezeichnung = "[" + getTextRespectUISpr("lp.seitenumbruch", mandantCNr, locUI) + "]";
            } else if (position.getAnfragepositionart_c_nr().equals(LocaleFac.POSITIONSART_TEXTBAUSTEIN)) {
                sBezeichnung = position.getFlrmediastandard().getC_nr();
            } else if (position.getAnfragepositionart_c_nr().equals(LocaleFac.POSITIONSART_IDENT)) {
                // die sprachabhaengig Artikelbezeichnung anzeigen
                sBezeichnung = getArtikelFac().formatArtikelbezeichnungEinzeiligOhneExc(
                        position.getFlrartikel().getI_id(), theClientDto.getLocUi());
            } else {
                // die restlichen Positionsarten
                if (position.getC_bez() != null) {
                    sBezeichnung = position.getC_bez();
                }
            }

            rows[row][col++] = sBezeichnung;

            rows[row][col++] = getUIObjectBigDecimalNachkommastellen(position.getN_richtpreis(),
                    iNachkommastellenPreis);
            if (position.getN_richtpreis() == null || position.getN_menge() == null) {
                rows[row][col++] = null;
            } else {
                rows[row][col++] = getUIObjectBigDecimalNachkommastellen(
                        position.getN_richtpreis().multiply(position.getN_menge()), iNachkommastellenPreis);
            }
            // Text
            if (position.getX_textinhalt() != null && !position.getX_textinhalt().equals("")) {
                rows[row][col++] = new Boolean(true);
                String text = position.getX_textinhalt();
                text = text.replaceAll("\n", "<br>");
                text = "<html>" + text + "</html>";
                tooltipData[row] = text;
            } else {
                rows[row][col++] = new Boolean(false);
            }
            row++;
            col = 0;
        }
        result = new QueryResult(rows, this.getRowCount(), startIndex, endIndex, 0, tooltipData);
    } catch (Exception e) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FLR, e);
    } finally {
        try {
            session.close();
        } catch (HibernateException he) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER, he);
        }
    }
    return result;
}

From source file:com.lp.server.anfrage.fastlanereader.AnfragepositionlieferdatenHandler.java

License:Open Source License

public QueryResult getPageAt(Integer rowIndex) throws EJBExceptionLP {
    QueryResult result = null;/*from w  ww  .  ja v  a  2 s .c o  m*/
    SessionFactory factory = FLRSessionFactory.getFactory();
    Session session = null;
    try {
        int colCount = getTableInfo().getColumnClasses().length;
        int pageSize = AnfrageHandler.PAGE_SIZE;
        int startIndex = Math.max(rowIndex.intValue() - (pageSize / 2), 0);
        int endIndex = startIndex + pageSize - 1;

        session = factory.openSession();
        String queryString = this.getFromClause() + this.buildWhereClause() + this.buildOrderByClause();
        // myLogger.info("HQL= " + queryString);
        Query query = session.createQuery(queryString);
        query.setFirstResult(startIndex);
        query.setMaxResults(pageSize);
        List<?> resultList = query.list();
        Iterator<?> resultListIterator = resultList.iterator();
        Object[][] rows = new Object[resultList.size()][colCount];
        int row = 0;
        int col = 0;

        while (resultListIterator.hasNext()) {
            FLRAnfragepositionlieferdaten position = (FLRAnfragepositionlieferdaten) resultListIterator.next();
            rows[row][col++] = position.getI_id();
            rows[row][col++] = position.getN_anliefermenge();
            rows[row][col++] = position.getFlranfrageposition().getFlrartikel().getEinheit_c_nr() == null ? ""
                    : position.getFlranfrageposition().getFlrartikel().getEinheit_c_nr().trim();
            String sIdentnummer = "";
            if (position.getFlranfrageposition().getFlrartikel() != null) {
                sIdentnummer = position.getFlranfrageposition().getFlrartikel().getC_nr();
            }
            rows[row][col++] = sIdentnummer;
            String cArtikelbezeichnung = null;

            Boolean bArtikellieferantVorhanden = false;

            if (position.getFlranfrageposition().getAnfragepositionart_c_nr()
                    .equals(AnfrageServiceFac.ANFRAGEPOSITIONART_IDENT)) {
                // die sprachabhaengig Artikelbezeichnung anzeigen
                cArtikelbezeichnung = getArtikelFac().formatArtikelbezeichnungEinzeiligOhneExc(
                        position.getFlranfrageposition().getFlrartikel().getI_id(), theClientDto.getLocUi());

                ArtikellieferantDto alDto = getArtikelFac()
                        .artikellieferantFindByArtikellIIdLieferantIIdOhneExc(
                                position.getFlranfrageposition().getFlrartikel().getI_id(),
                                position.getFlranfrageposition().getFlranfrage().getFlrlieferant().getI_id(),
                                theClientDto);
                if (alDto != null) {
                    bArtikellieferantVorhanden = true;
                }

            } else {
                if (position.getFlranfrageposition().getC_bez() != null) {
                    cArtikelbezeichnung = position.getFlranfrageposition().getC_bez();
                }
            }

            rows[row][col++] = cArtikelbezeichnung;
            rows[row][col++] = position.getN_nettogesamtpreis();

            rows[row++][col++] = bArtikellieferantVorhanden;

            col = 0;
        }
        result = new QueryResult(rows, this.getRowCount(), startIndex, endIndex, 0);
    } catch (Exception e) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FLR, e);
    } finally {
        try {
            session.close();
        } catch (HibernateException he) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER, he);
        }
    }
    return result;
}

From source file:com.lp.server.anfrage.fastlanereader.AnfragetextHandler.java

License:Open Source License

/**
 * gets the data page for the specified row using the current query. The row
 * at rowIndex will be located in the middle of the page.
 * //from   w  w  w.jav a  2 s. c o m
 * @param rowIndex
 *            diese Zeile soll selektiert sein
 * @return QueryResult das Ergebnis der Abfrage
 * @throws EJBExceptionLP
 *             Ausnahme
 * @see UseCaseHandler#getPageAt(java.lang.Integer)
 */
public QueryResult getPageAt(Integer rowIndex) throws EJBExceptionLP {
    QueryResult result = null;
    SessionFactory factory = FLRSessionFactory.getFactory();
    Session session = null;
    try {
        int colCount = getTableInfo().getColumnClasses().length;
        int pageSize = AnfragetextHandler.PAGE_SIZE;
        int startIndex = Math.max(rowIndex.intValue() - (pageSize / 2), 0);
        int endIndex = startIndex + pageSize - 1;

        session = factory.openSession();
        String queryString = this.getFromClause() + this.buildWhereClause() + this.buildOrderByClause();
        // myLogger.info("HQL= " + queryString);
        Query query = session.createQuery(queryString);
        query.setFirstResult(startIndex);
        query.setMaxResults(pageSize);
        List<?> resultList = query.list();
        Iterator<?> resultListIterator = resultList.iterator();
        Object[][] rows = new Object[resultList.size()][colCount];

        int row = 0;
        int col = 0;

        while (resultListIterator.hasNext()) {
            FLRAnfragetext anfragetext = (FLRAnfragetext) resultListIterator.next();

            rows[row][col++] = anfragetext.getI_id();
            rows[row][col++] = anfragetext.getMediaart_c_nr();
            rows[row++][col++] = anfragetext.getX_textinhalt();

            col = 0;
        }
        result = new QueryResult(rows, this.getRowCount(), startIndex, endIndex, 0);
    } catch (Exception e) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FLR, e);
    } finally {
        try {
            session.close();
        } catch (HibernateException he) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER, he);
        }
    }
    return result;
}

From source file:com.lp.server.anfrage.fastlanereader.ZertifikatartHandler.java

License:Open Source License

/**
 * gets the data page for the specified row using the current query. The row
 * at rowIndex will be located in the middle of the page.
 * // www  .j  a  v a  2s.com
 * @param rowIndex
 *            diese Zeile soll selektiert sein
 * @return QueryResult das Ergebnis der Abfrage
 * @throws EJBExceptionLP
 *             Ausnahme
 * @see UseCaseHandler#getPageAt(java.lang.Integer)
 */
public QueryResult getPageAt(Integer rowIndex) throws EJBExceptionLP {
    QueryResult result = null;
    SessionFactory factory = FLRSessionFactory.getFactory();
    Session session = null;
    try {
        int colCount = getTableInfo().getColumnClasses().length;
        int pageSize = AnfragetextHandler.PAGE_SIZE;
        int startIndex = Math.max(rowIndex.intValue() - (pageSize / 2), 0);
        int endIndex = startIndex + pageSize - 1;

        session = factory.openSession();
        String queryString = this.getFromClause() + this.buildWhereClause() + this.buildOrderByClause();
        // myLogger.info("HQL= " + queryString);
        Query query = session.createQuery(queryString);
        query.setFirstResult(startIndex);
        query.setMaxResults(pageSize);
        List<?> resultList = query.list();
        Iterator<?> resultListIterator = resultList.iterator();
        Object[][] rows = new Object[resultList.size()][colCount];

        int row = 0;
        int col = 0;

        while (resultListIterator.hasNext()) {
            FLRZertifikatart anfragetext = (FLRZertifikatart) resultListIterator.next();

            rows[row][col++] = anfragetext.getI_id();
            rows[row++][col++] = anfragetext.getC_bez();

            col = 0;
        }
        result = new QueryResult(rows, this.getRowCount(), startIndex, endIndex, 0);
    } catch (Exception e) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FLR, e);
    } finally {
        try {
            session.close();
        } catch (HibernateException he) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER, he);
        }
    }
    return result;
}

From source file:com.lp.server.angebot.fastlanereader.AngebotartHandler.java

License:Open Source License

/**
 * gets the page of data for the specified row using the current
 * queryParameters.//from   ww  w  . jav  a2  s  .com
 * 
 * @param rowIndex
 *            diese Zeile soll selektiert sein
 * @return QueryResult das Ergebnis der Abfrage
 * @throws EJBExceptionLP
 *             Ausnahme
 * @see UseCaseHandler#getPageAt(java.lang.Integer)
 */
public QueryResult getPageAt(Integer rowIndex) throws EJBExceptionLP {
    QueryResult result = null;
    SessionFactory factory = FLRSessionFactory.getFactory();
    Session session = null;
    try {
        int colCount = getTableInfo().getColumnClasses().length;
        int pageSize = AngebotartHandler.PAGE_SIZE;
        int startIndex = Math.max(rowIndex.intValue() - (pageSize / 2), 0);
        int endIndex = startIndex + pageSize - 1;

        session = factory.openSession();
        String queryString = this.getFromClause() + this.buildWhereClause() + this.buildOrderByClause();

        Query query = session.createQuery(queryString);
        session = setFilter(session);

        query.setFirstResult(startIndex);
        query.setMaxResults(pageSize);
        List<?> resultList = query.list();
        Iterator<?> resultListIterator = resultList.iterator();

        Object[][] rows = new Object[resultList.size()][colCount];
        int row = 0;
        int col = 0;
        String sLocUI = Helper.locale2String(theClientDto.getLocUi());

        while (resultListIterator.hasNext()) {
            Object o[] = (Object[]) resultListIterator.next();
            FLRAngebotart angebotart = (FLRAngebotart) o[0];
            Iterator<?> sprsetIterator = angebotart.getAngebotart_angebotart_set().iterator();

            rows[row][col++] = angebotart.getC_nr();
            rows[row][col++] = angebotart.getC_nr();
            rows[row][col++] = angebotart.getI_sort();
            rows[row][col++] = findSpr(sLocUI, sprsetIterator);

            row++;
            col = 0;
        }
        result = new QueryResult(rows, this.getRowCount(), startIndex, endIndex, 0);
    } catch (Exception e) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FLR, e);
    } finally {
        try {
            session.close();
        } catch (HibernateException he) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER, he);
        }
    }
    return result;
}