Package com.ctp.cdi.query.builder

Source Code of com.ctp.cdi.query.builder.MethodQueryBuilder

package com.ctp.cdi.query.builder;

import javax.persistence.Query;

import com.ctp.cdi.query.builder.part.QueryRoot;
import com.ctp.cdi.query.handler.CdiQueryInvocationContext;
import com.ctp.cdi.query.meta.MethodType;
import com.ctp.cdi.query.meta.QueryInvocation;
import com.ctp.cdi.query.param.Parameters;

/**
*
* @author thomashug
*/
@QueryInvocation(MethodType.PARSE)
public class MethodQueryBuilder extends QueryBuilder {
   
    @Override
    public Object execute(CdiQueryInvocationContext context) {
        Query jpaQuery = createJpaQuery(context);
        return context.executeQuery(jpaQuery);
    }
   
    private Query createJpaQuery(CdiQueryInvocationContext context) {
        Parameters params = context.getParams();
        QueryRoot root = context.getDaoMethod().getQueryRoot();
        String jpqlQuery = context.applyQueryStringPostProcessors(root.getJpqlQuery());
        context.setQueryString(jpqlQuery);
        Query result = params.applyTo(context.getEntityManager().createQuery(jpqlQuery));
        return applyRestrictions(context, result);
    }
   
}
TOP

Related Classes of com.ctp.cdi.query.builder.MethodQueryBuilder

TOP
Copyright © 2018 www.massapi.com. 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.