Package uk.gov.nationalarchives.droid.core.interfaces.filter.expressions

Examples of uk.gov.nationalarchives.droid.core.interfaces.filter.expressions.QueryBuilder


        }
        Query query;
        String queryString = "";
        boolean filterExists = filter != null && filter.isEnabled();
        if (filterExists) {
            QueryBuilder queryBuilder = SqlUtils.getQueryBuilder(filter);
            String ejbFragment = queryBuilder.toEjbQl();
            boolean formatCriteriaExist = ejbFragment.contains("format.");
            String sqlFilter = SqlUtils.transformEJBtoSQLFields(ejbFragment, "profile", "form");
            queryString = formatCriteriaExist ? "select distinct profile.* " : "select profile.* ";
            queryString += "from profile_resource_node as profile ";
            if (formatCriteriaExist) {
                queryString += "inner join identification as ident on ident.node_id = profile.node_id"
                    + " inner join format as form on form.puid = ident.puid ";
            }
            queryString += "where " + sqlFilter;
            query = session.createSQLQuery(queryString).addEntity(ProfileResourceNode.class);
            int i = 0;
            for (Object value : queryBuilder.getValues()) {
                Object value2 = SqlUtils.transformParameterToSQLValue(value);
                query.setParameter(i++, value2);
            }       
        } else {
            queryString = "select * from profile_resource_node";
View Full Code Here


     * @param baseQuery the base query
     * @return a hibernate query
     */
    public Query parse(Filter filter, Session hibernateSession, String baseQuery) {
       
        QueryBuilder queryBuilder = SqlUtils.getQueryBuilder(filter);
       
        String ejbFilter = queryBuilder.toEjbQl();
        String startQuery = baseQuery;
        if (ejbFilter.contains("format.")) {
            startQuery = baseQuery + " INNER JOIN profileResourceNode.formatIdentifications as format ";
        }
       
        final String queryString = startQuery + " WHERE " + ejbFilter;
        log.debug("Query = " + queryString);

        Query query = hibernateSession.createQuery(queryString);
        int i = 0;
        for (Object value : queryBuilder.getValues()) {
            query.setParameter(i++, value);
        }
       
        return query;
    }
View Full Code Here

    @Override
    @SuppressWarnings("unchecked")
    //@Transactional(propagation = Propagation.REQUIRED)
    public List<ProfileResourceNode> findProfileResourceNodes(Long parentId,
            Filter filter) {
        QueryBuilder queryBuilder = SqlUtils.getQueryBuilder(filter);
        String ejbFilter = queryBuilder.toEjbQl();
        String query = getSQLQueryString(ejbFilter, parentId);
        Query q = entityManager.createNativeQuery(query, "ResourceNodeWithFilterStatus");
       
        // Set the parameters:
        int i = 1;
        Object[] values = queryBuilder.getValues();
        for (int j = 0; j < values.length; j++) {
            Object value = values[j];
           
            // FIXME: ugly hack to transform certain enumerations back into
            // their ordinal values.  For some reason, if putting the enum
View Full Code Here

     *
     * @param filter a filter to use to build the query.
     * @return QueryBuilder - the filter as an EJB QueryBuilder object.
     */
    public static QueryBuilder getQueryBuilder(Filter filter) {
        QueryBuilder queryBuilder = QueryBuilder
        .forAlias("profileResourceNode");
        queryBuilder.createAlias("format");
       
        if (filter.isNarrowed()) {
            for (FilterCriterion criterion : filter.getCriteria()) {
                queryBuilder.add(RestrictionFactory.forFilterCriterion(criterion));
            }
        } else {
            Junction disjunction = Restrictions.disjunction();
            for (FilterCriterion criterion : filter.getCriteria()) {
                disjunction.add(RestrictionFactory.forFilterCriterion(criterion));
            }
            queryBuilder.add(disjunction);
        }
        return queryBuilder;
    }
View Full Code Here

    }

   
    private FilterInfo getFilterInfo(Criterion filter) {
        final FilterInfo filterInfo = new FilterInfo();
        final QueryBuilder queryBuilder = QueryBuilder.forAlias("profileResourceNode").createAlias("format");
        queryBuilder.add(filter);
        final String ejbQl = queryBuilder.toEjbQl();
       
        // If we have a filter, get its SQL query string and parameter values:
        if (ejbQl.length() > 0) {
            filterInfo.setFilterSubQuery(buildFilterSubQuery(ejbQl));
            filterInfo.setFilterValues(queryBuilder.getValues());
        }
        return filterInfo;
    }
View Full Code Here

            filterEnabled = filter.isEnabled() && !filter.getCriteria().isEmpty();
        }
       
        if (filterEnabled) {
           
            QueryBuilder queryBuilder = QueryBuilder.forAlias("profileResourceNode");
            if (filter.isNarrowed()) {
                for (FilterCriterion criterion : filter.getCriteria()) {
                    queryBuilder.add(RestrictionFactory.forFilterCriterion(criterion));
                }
            } else {
                Junction orJunction = Restrictions.disjunction();
                for (FilterCriterion criterion : filter.getCriteria()) {
                    orJunction.add(RestrictionFactory.forFilterCriterion(criterion));
                }
                queryBuilder.add(orJunction);
            }
           
            filterQueryString = " AND " + queryBuilder.toEjbQl();
            filterParams = queryBuilder.getValues();
           
//            FilterQueryStringGenerator filterQueryGenerator = new FilterQueryStringGenerator();
//            FilterQueryStringGenerator.FilterQueryStringAndNamedParameter queryAndParameter = filterQueryGenerator
//                    .getFilterQueryString(filter);
//            filterQueryString = " AND " + queryAndParameter.getFilterQueryString();
View Full Code Here

TOP

Related Classes of uk.gov.nationalarchives.droid.core.interfaces.filter.expressions.QueryBuilder

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.