Example usage for org.hibernate.internal CriteriaImpl.Subcriteria getAlias

List of usage examples for org.hibernate.internal CriteriaImpl.Subcriteria getAlias

Introduction

In this page you can find the example usage for org.hibernate.internal CriteriaImpl.Subcriteria getAlias.

Prototype

@Override
    public String getAlias() 

Source Link

Usage

From source file:org.grails.orm.hibernate.query.HibernateQuery.java

License:Apache License

@Override
public Object clone() {
    final CriteriaImpl impl = (CriteriaImpl) criteria;
    final HibernateSession hibernateSession = (HibernateSession) getSession();
    final GrailsHibernateTemplate hibernateTemplate = (GrailsHibernateTemplate) hibernateSession
            .getNativeInterface();/* w  w w.ja  v a2  s. com*/
    return hibernateTemplate.execute(new GrailsHibernateTemplate.HibernateCallback<Object>() {
        @Override
        public HibernateQuery doInHibernate(Session session) throws HibernateException, SQLException {
            Criteria newCriteria = session.createCriteria(impl.getEntityOrClassName());

            Iterator iterator = impl.iterateExpressionEntries();
            while (iterator.hasNext()) {
                CriteriaImpl.CriterionEntry entry = (CriteriaImpl.CriterionEntry) iterator.next();
                newCriteria.add(entry.getCriterion());
            }
            Iterator subcriteriaIterator = impl.iterateSubcriteria();
            while (subcriteriaIterator.hasNext()) {
                CriteriaImpl.Subcriteria sub = (CriteriaImpl.Subcriteria) subcriteriaIterator.next();
                newCriteria.createAlias(sub.getPath(), sub.getAlias(), sub.getJoinType(), sub.getWithClause());
            }
            return new HibernateQuery(newCriteria, hibernateSession, entity);
        }
    });
}