/*
|
* 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<OrderByDefinition> orderByFields) throws Exception {
|
JpqlQueryCriterion queryCriterion = new JpqlParsedQueryCriterion(new CriteriaEntityFromViewToJqplQueryCriterion(criterion).queryCriterion(), classe)
|
.parsedCriterion();
|
|
List<JpqlQueryParam> 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<JpqlQueryParam> params = new JpqlWhereQueryParameters(queryCriterion).parameters();
|
|
String query = new JqplQueryString(classe.getSimpleName(), queryCriterion).countQuery();
|
return new JpqlQueryElement(query, params);
|
|
}
|
}
|