Example usage for org.hibernate.hql.internal.ast.tree FromElement getTableAlias

List of usage examples for org.hibernate.hql.internal.ast.tree FromElement getTableAlias

Introduction

In this page you can find the example usage for org.hibernate.hql.internal.ast.tree FromElement getTableAlias.

Prototype

public String getTableAlias() 

Source Link

Usage

From source file:com.blazebit.persistence.integration.hibernate.base.HibernateExtendedQuerySupport.java

License:Apache License

@Override
public String getSqlAlias(EntityManager em, Query query, String alias) {
    SessionImplementor session = em.unwrap(SessionImplementor.class);
    HQLQueryPlan plan = getOriginalQueryPlan(session, query);
    if (plan.getTranslators().length > 1) {
        throw new IllegalArgumentException("No support for multiple translators yet!");
    }//from  w w w  . ja  v  a2 s . co m
    QueryTranslator translator = plan.getTranslators()[0];

    QueryNode queryNode = getField(translator, "sqlAst");
    FromElement fromElement = queryNode.getFromClause().getFromElement(alias);

    if (fromElement == null) {
        throw new IllegalArgumentException("The alias " + alias + " could not be found in the query: " + query);
    }

    return fromElement.getTableAlias();
}