/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package com.megatim.fdxcommons.tools.database.tables; import com.megatim.fdxcommons.model.pojo.CriteriaEntityFromView; import com.megatim.fdxcommons.tools.database.tables.dto.JpqlQueryElement; import com.megatim.fdxcommons.model.pojo.OrderByDefinition; import com.megatim.fdxcommons.tools.database.queries.jpql.JqplQueryString; import com.megatim.fdxcommons.tools.database.queries.metadata.jpql.JpqlParsedQueryCriterion; import com.megatim.fdxcommons.tools.database.queries.metadata.jpql.JpqlQueryCriterion; import com.megatim.fdxcommons.tools.database.queries.metadata.jpql.JpqlQueryParam; import com.megatim.fdxcommons.tools.database.queries.metadata.jpql.JpqlWhereQueryParameters; import com.megatim.fdxcommons.tools.utils.CriteriaEntityFromViewToJqplQueryCriterion; import java.util.List; /** * * @author ASUS */ public class JpqlTable { private final CriteriaEntityFromView criterion; private final Class classe; public JpqlTable(CriteriaEntityFromView criterion, Class classe) { this.criterion = criterion; this.classe = classe; } public JpqlQueryElement selectQuery(List orderByFields) throws Exception { JpqlQueryCriterion queryCriterion = new JpqlParsedQueryCriterion(new CriteriaEntityFromViewToJqplQueryCriterion(criterion).queryCriterion(), classe) .parsedCriterion(); List params = new JpqlWhereQueryParameters(queryCriterion).parameters(); String query = new JqplQueryString(classe.getSimpleName(), queryCriterion).selectQuery(orderByFields); return new JpqlQueryElement(query, params); } public JpqlQueryElement countQuery() throws Exception { JpqlQueryCriterion queryCriterion = new JpqlParsedQueryCriterion(new CriteriaEntityFromViewToJqplQueryCriterion(criterion).queryCriterion(), classe) .parsedCriterion(); List params = new JpqlWhereQueryParameters(queryCriterion).parameters(); String query = new JqplQueryString(classe.getSimpleName(), queryCriterion).countQuery(); return new JpqlQueryElement(query, params); } }