use of org.hibernate.query.sqm.sql.SqmTranslatorFactory in project hibernate-orm by hibernate.
the class EntityJoinTest method testNoImpliedJoinGeneratedForEqualityComparison.
@Test
@TestForIssue(jiraKey = "HHH-11538")
public void testNoImpliedJoinGeneratedForEqualityComparison(SessionFactoryScope scope) {
final String qry = "select r.id, cust.name " + "from FinancialRecord r " + " join Customer cust on r.customer = cust" + " order by r.id";
scope.inTransaction((session) -> {
final SessionFactoryImplementor factory = scope.getSessionFactory();
final EntityMappingType customerEntityDescriptor = factory.getRuntimeMetamodels().getMappingMetamodel().findEntityDescriptor(Customer.class);
final QueryEngine queryEngine = factory.getQueryEngine();
final HqlTranslator hqlTranslator = queryEngine.getHqlTranslator();
final SqmTranslatorFactory sqmTranslatorFactory = queryEngine.getSqmTranslatorFactory();
final SqmStatement<Object> sqm = hqlTranslator.translate(qry);
final SqmTranslator<SelectStatement> selectTranslator = sqmTranslatorFactory.createSelectTranslator((SqmSelectStatement<?>) sqm, QueryOptions.NONE, DomainParameterXref.empty(), QueryParameterBindings.NO_PARAM_BINDINGS, LoadQueryInfluencers.NONE, factory, true);
final SqmTranslation<SelectStatement> sqmTranslation = selectTranslator.translate();
final SelectStatement sqlAst = sqmTranslation.getSqlAst();
final List<TableGroup> roots = sqlAst.getQuerySpec().getFromClause().getRoots();
assertThat(roots.size(), is(1));
final TableGroup rootTableGroup = roots.get(0);
assertThat(rootTableGroup.getTableGroupJoins().size(), is(1));
final TableGroupJoin tableGroupJoin = rootTableGroup.getTableGroupJoins().get(0);
assertThat(tableGroupJoin.getJoinedGroup().getModelPart(), is(customerEntityDescriptor));
});
}
use of org.hibernate.query.sqm.sql.SqmTranslatorFactory in project hibernate-orm by hibernate.
the class AbstractResultTests method interpret.
protected SelectStatement interpret(String hql, QueryParameterBindings parameterBindings, SessionFactoryImplementor sessionFactory) {
final QueryEngine queryEngine = sessionFactory.getQueryEngine();
final SqmSelectStatement<?> sqm = (SqmSelectStatement<?>) queryEngine.getHqlTranslator().translate(hql);
final SqmTranslatorFactory sqmTranslatorFactory = queryEngine.getSqmTranslatorFactory();
final SqmTranslator<SelectStatement> sqmConverter = sqmTranslatorFactory.createSelectTranslator(sqm, QueryOptions.NONE, DomainParameterXref.from(sqm), parameterBindings, LoadQueryInfluencers.NONE, sessionFactory, true);
return sqmConverter.translate().getSqlAst();
}
Aggregations