Package org.apache.ojb.broker.query

Examples of org.apache.ojb.broker.query.ReportQueryByCriteria


    /**
     * Create a Count-Query for ReportQueryByCriteria
     */
    private Query getReportQueryByCriteriaCount(ReportQueryByCriteria aQuery)
    {
        ReportQueryByCriteria countQuery = (ReportQueryByCriteria) getQueryByCriteriaCount(aQuery);

        // BRJ: keep the original columns to build the Join
        countQuery.setJoinAttributes(aQuery.getAttributes());

        // BRJ: we have to preserve groupby information
        Iterator iter = aQuery.getGroupBy().iterator();
        while(iter.hasNext())
        {
            countQuery.addGroupBy((FieldHelper) iter.next());
        }

        return countQuery;
    }
View Full Code Here


    public void testCountByReportQuery() throws Exception
    {
        // 7 articles, 2 books, 3 cds
        Criteria criteria = new Criteria();
        criteria.addEqualTo("productGroupId", new Integer(5));
        ReportQueryByCriteria query = QueryFactory.newReportQuery(Article.class, criteria);
        query.setAttributes(new String[]{"count(*)"});
        Iterator iter = broker.getReportQueryIteratorByQuery(query);
        Object[] row;
        int count = 0;

        while (iter.hasNext())
View Full Code Here

    {
        // 7 articles, 2 books, 3 cds
        Criteria criteria = new Criteria();
        criteria.addEqualTo("productGroupId", new Integer(5));
        Query query = QueryFactory.newQuery(Article.class, criteria);
        ReportQueryByCriteria reportQuery;
        Iterator iter = broker.getIteratorByQuery(query);
        Collection result = new Vector();
        InterfaceArticle article;
        int count;

        while (iter.hasNext())
        {
            article = (InterfaceArticle) iter.next();
            result.add(article);
        }
        assertEquals("Iterator should produce 12 items", 12, result.size());

        // get count
        count = broker.getCount(query);
        assertEquals("Count should be 12", 12, count);

        reportQuery = QueryFactory.newReportQuery(Article.class, criteria);
        reportQuery.setAttributes(new String[]{"count(*)"});
        iter = broker.getReportQueryIteratorByQuery(reportQuery);

        while (iter.hasNext())
        {
            result.add(iter.next());
View Full Code Here

            pg.setDescription("build by QueryTest#testSubQuery2");
            broker.store(pg);
        }
        broker.commitTransaction();

        ReportQueryByCriteria subQuery;
        Criteria subCrit = new Criteria();
        Criteria crit = new Criteria();

        subQuery = QueryFactory.newReportQuery(Article.class, subCrit);
        subQuery.setAttributes(new String[]{"productGroupId"});
        subQuery.setDistinct(true);

        crit.addEqualTo("groupName", "test group " + stamp);
        crit.addNotIn("groupId", subQuery);
        Query q = QueryFactory.newQuery(ProductGroup.class, crit);
View Full Code Here

     * test may fail if db does not support sub queries
     */
    public void testSubQuery1()
    {

        ReportQueryByCriteria subQuery;
        Criteria subCrit = new Criteria();
        Criteria crit = new Criteria();

        subCrit.addLike("articleName", "A%");
        subQuery = QueryFactory.newReportQuery(Article.class, subCrit);
        subQuery.setAttributes(new String[]{"avg(price)"});

        crit.addGreaterOrEqualThan("price", subQuery);
        Query q = QueryFactory.newQuery(Article.class, crit);

        Collection results = broker.getCollectionByQuery(q);
View Full Code Here

     * test may fail if db does not support sub queries
     */
    public void testSubQuery3()
    {

        ReportQueryByCriteria subQuery;
        Criteria subCrit = new Criteria();
        Criteria crit = new Criteria();

        subCrit.addEqualToField("productGroupId", Criteria.PARENT_QUERY_PREFIX + "groupId");
        subQuery = QueryFactory.newReportQuery(Article.class, subCrit);
        subQuery.setAttributes(new String[]{"count(productGroupId)"});

        crit.addLessThan("10", subQuery); // MORE than 10 articles, uses
        // attribute as value !
        crit.addLessThan("groupId", PGROUP_ID_HI_WATERMARK);
        Query q = QueryFactory.newQuery(ProductGroup.class, crit);
View Full Code Here

     * test may fail if db does not support sub queries
     */
    public void testSubQuery4()
    {

        ReportQueryByCriteria subQuery;
        Criteria subCrit = new Criteria();
        Criteria crit = new Criteria();

        subCrit.addEqualToField("productGroupId", Criteria.PARENT_QUERY_PREFIX + "groupId");
        subQuery = QueryFactory.newReportQuery(Article.class, subCrit);
        subQuery.setAttributes(new String[]{"count(productGroupId)"});

        // mkalen: if using String("10") instead of Integer below,
        // PostgreSQL will return 7 (sic!) groups
        crit.addGreaterThan(subQuery, new Integer(10)); // MORE than 10 articles
        crit.addLessThan("groupId", PGROUP_ID_HI_WATERMARK);
View Full Code Here

        Collection results = new Vector();
        crit.addLike("firstname", "%o%");
        Criteria crit2 = new Criteria();
        crit2.addLike("lastname", name);
        crit.addAndCriteria(crit2);
        ReportQueryByCriteria q = QueryFactory.newReportQuery(Person.class, crit);
        q.setAttributes(new String[]{"id", "firstname", "count(*)"});
        q.addGroupBy(new String[]{"id", "firstname"});

        Iterator iter = broker.getReportQueryIteratorByQuery(q);

        assertNotNull(iter);
        while(iter.hasNext())
View Full Code Here

        Collection results = new Vector();
        crit.addLike("firstname", "%o%");
        Criteria crit2 = new Criteria();
        crit2.addLike("lastname", name);
        crit.addAndCriteria(crit2);
        ReportQueryByCriteria q = QueryFactory.newReportQuery(Person.class, crit);
        q.setAttributes(new String[]{"max(id)"});
        q.addGroupBy(new String[]{"lastname", "firstname"});

        Iterator iter = broker.getReportQueryIteratorByQuery(q);

        assertNotNull(iter);
        while(iter.hasNext())
View Full Code Here

        crit.addLike("firstname", "%o%");
        Criteria crit2 = new Criteria();
        crit2.addLike("lastname", name);
        crit.addAndCriteria(crit2);

        ReportQueryByCriteria q = QueryFactory.newReportQuery(Person.class, crit);
        q.setAttributes(new String[]{"id", "firstname", "count(*)"});
        q.addGroupBy(new String[]{"id", "firstname"});
        q.setJdbcTypes(types);

        Iterator iter = broker.getReportQueryIteratorByQuery(q);

        assertNotNull(iter);
        while(iter.hasNext())
View Full Code Here

TOP

Related Classes of org.apache.ojb.broker.query.ReportQueryByCriteria

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.