use of org.hibernate.sql.ast.tree.from.FromClause in project hibernate-orm by hibernate.
the class SmokeTests method testSimpleHqlInterpretation.
@Test
public void testSimpleHqlInterpretation(SessionFactoryScope scope) {
scope.inTransaction(session -> {
final QueryImplementor<String> query = session.createQuery("select e.name from SimpleEntity e", String.class);
final SqmQueryImplementor<String> hqlQuery = (SqmQueryImplementor<String>) query;
final SqmSelectStatement<String> sqmStatement = (SqmSelectStatement<String>) hqlQuery.getSqmStatement();
final StandardSqmTranslator<SelectStatement> sqmConverter = new StandardSqmTranslator<>(sqmStatement, hqlQuery.getQueryOptions(), ((QuerySqmImpl<?>) hqlQuery).getDomainParameterXref(), query.getParameterBindings(), session.getLoadQueryInfluencers(), scope.getSessionFactory(), true);
final SqmTranslation<SelectStatement> sqmInterpretation = sqmConverter.translate();
final SelectStatement sqlAst = sqmInterpretation.getSqlAst();
final FromClause fromClause = sqlAst.getQuerySpec().getFromClause();
assertThat(fromClause.getRoots().size(), is(1));
final TableGroup rootTableGroup = fromClause.getRoots().get(0);
assertThat(rootTableGroup.getPrimaryTableReference(), notNullValue());
assertThat(rootTableGroup.getPrimaryTableReference().getTableId(), is("mapping_simple_entity"));
assertThat(rootTableGroup.getTableReferenceJoins().size(), is(0));
assertThat(rootTableGroup.getTableGroupJoins().isEmpty(), is(true));
// `s` is the "alias stem" for `SimpleEntity` and as it is the first entity with that stem in
// the query the base becomes `s1`. The primary table reference is always suffixed as `_0`
assertThat(rootTableGroup.getPrimaryTableReference().getIdentificationVariable(), is("s1_0"));
final SelectClause selectClause = sqlAst.getQuerySpec().getSelectClause();
assertThat(selectClause.getSqlSelections().size(), is(1));
final SqlSelection sqlSelection = selectClause.getSqlSelections().get(0);
assertThat(sqlSelection.getJdbcResultSetIndex(), is(1));
assertThat(sqlSelection.getValuesArrayPosition(), is(0));
assertThat(sqlSelection.getJdbcValueExtractor(), notNullValue());
final JdbcSelect jdbcSelectOperation = new StandardSqlAstTranslator<JdbcSelect>(session.getSessionFactory(), sqlAst).translate(null, QueryOptions.NONE);
assertThat(jdbcSelectOperation.getSql(), is("select s1_0.name from mapping_simple_entity s1_0"));
});
}
use of org.hibernate.sql.ast.tree.from.FromClause in project hibernate-orm by hibernate.
the class CriteriaEntityGraphTest method assertEntityValuedJoinedGroup.
private void assertEntityValuedJoinedGroup(SelectStatement sqlAst, String expectedAttributeName, Class<?> expectedEntityJpaClass, Consumer<TableGroup> tableGroupConsumer) {
final FromClause fromClause = sqlAst.getQuerySpec().getFromClause();
assertThat(fromClause.getRoots(), hasSize(1));
final TableGroup rootTableGroup = fromClause.getRoots().get(0);
assertThat(rootTableGroup.getTableGroupJoins(), hasSize(1));
final TableGroup joinedGroup = rootTableGroup.getTableGroupJoins().iterator().next().getJoinedGroup();
assertThat(joinedGroup.getModelPart().getPartName(), is(expectedAttributeName));
assertThat(joinedGroup.getModelPart().getJavaType().getJavaTypeClass(), assignableTo(expectedEntityJpaClass));
assertThat(joinedGroup.getModelPart(), instanceOf(EntityValuedModelPart.class));
tableGroupConsumer.accept(joinedGroup);
}
use of org.hibernate.sql.ast.tree.from.FromClause in project hibernate-orm by hibernate.
the class CriteriaEntityGraphTest method assertPluralAttributeJoinedGroup.
private void assertPluralAttributeJoinedGroup(SelectStatement sqlAst, String expectedPluralAttributeName, Consumer<TableGroup> tableGroupConsumer) {
final FromClause fromClause = sqlAst.getQuerySpec().getFromClause();
assertThat(fromClause.getRoots(), hasSize(1));
final TableGroup root = fromClause.getRoots().get(0);
assertThat(root.getTableGroupJoins(), hasSize(1));
final TableGroup joinedGroup = root.getTableGroupJoins().iterator().next().getJoinedGroup();
assertThat(joinedGroup.getModelPart().getPartName(), is(expectedPluralAttributeName));
assertThat(joinedGroup.getModelPart(), instanceOf(PluralAttributeMapping.class));
tableGroupConsumer.accept(joinedGroup);
}
use of org.hibernate.sql.ast.tree.from.FromClause in project hibernate-orm by hibernate.
the class HqlEntityGraphTest method assertEmptyJoinedGroup.
// util methods for verifying 'from-clause' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
private void assertEmptyJoinedGroup(SelectStatement sqlAst) {
final FromClause fromClause = sqlAst.getQuerySpec().getFromClause();
assertThat(fromClause.getRoots(), hasSize(1));
final TableGroup rootTableGroup = fromClause.getRoots().get(0);
assertThat(rootTableGroup.getTableGroupJoins(), isEmpty());
}
use of org.hibernate.sql.ast.tree.from.FromClause in project hibernate-orm by hibernate.
the class EntityGraphLoadPlanBuilderTest method assertEmptyJoinedGroup.
// util methods for verifying 'from-clause' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
private void assertEmptyJoinedGroup(SelectStatement sqlAst) {
final FromClause fromClause = sqlAst.getQuerySpec().getFromClause();
assertThat(fromClause.getRoots(), hasSize(1));
final TableGroup rootTableGroup = fromClause.getRoots().get(0);
assertThat(rootTableGroup.getTableGroupJoins(), isEmpty());
}
Aggregations