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.QueryInvocationContext;
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(QueryInvocationContext context) {
        Query jpaQuery = createJpaQuery(context);
        if (returnsList(context.getMethod())) {
            return jpaQuery.getResultList();
        } else {
            return jpaQuery.getSingleResult();
        }
    }
   
    private Query createJpaQuery(QueryInvocationContext context) {
        Parameters params = context.getParams();
        QueryRoot root = context.getDaoMethod().getQueryRoot();
        Query result = params.applyTo(context.getEntityManager().createQuery(root.getJpqlQuery()));
        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.