package org.hibernate.query.spi;
import java.io.Serializable;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.Map;
import javax.persistence.Parameter;
import javax.persistence.TemporalType;
import org.hibernate.CacheMode;
import org.hibernate.FlushMode;
import org.hibernate.Incubating;
import org.hibernate.LockMode;
import org.hibernate.LockOptions;
import org.hibernate.MappingException;
import org.hibernate.query.NativeQuery;
import org.hibernate.query.QueryParameter;
import org.hibernate.type.Type;
@Incubating
public interface NativeQueryImplementor<T> extends QueryImplementor<T>, NativeQuery<T> {
NativeQueryImplementor setCollectionKey(Serializable key);
@Override
NativeQueryImplementor<T> addScalar(String columnAlias);
@Override
NativeQueryImplementor<T> addScalar(String columnAlias, Type type);
@Override
RootReturn addRoot(String tableAlias, String entityName);
@Override
NativeQueryImplementor<T> addEntity(String entityName);
@Override
NativeQueryImplementor<T> addEntity(String tableAlias, String entityName);
@Override
NativeQueryImplementor<T> addEntity(String tableAlias, String entityName, LockMode lockMode);
@Override
NativeQueryImplementor<T> addEntity(Class entityType);
@Override
NativeQueryImplementor<T> addEntity(String tableAlias, Class entityType);
@Override
NativeQueryImplementor<T> addEntity(String tableAlias, Class entityClass, LockMode lockMode);
@Override
NativeQueryImplementor<T> addJoin(String tableAlias, String path);
@Override
NativeQueryImplementor<T> addJoin(String tableAlias, String ownerTableAlias, String joinPropertyName);
@Override
NativeQueryImplementor<T> addJoin(String tableAlias, String path, LockMode lockMode);
@Override
NativeQueryImplementor<T> setHibernateFlushMode(FlushMode flushMode);
@Override
NativeQueryImplementor<T> setCacheMode(CacheMode cacheMode);
@Override
NativeQueryImplementor<T> setCacheable(boolean cacheable);
@Override
NativeQueryImplementor<T> setCacheRegion(String cacheRegion);
@Override
NativeQueryImplementor<T> setTimeout(int timeout);
@Override
NativeQueryImplementor<T> setFetchSize(int fetchSize);
@Override
NativeQueryImplementor<T> setReadOnly(boolean readOnly);
@Override
NativeQueryImplementor<T> setLockOptions(LockOptions lockOptions);
@Override
NativeQueryImplementor<T> setLockMode(String alias, LockMode lockMode);
@Override
NativeQueryImplementor<T> (String comment);
@Override
NativeQueryImplementor<T> addQueryHint(String hint);
@Override
<P> NativeQueryImplementor<T> setParameter(QueryParameter<P> parameter, P val);
@Override
<P> NativeQueryImplementor<T> setParameter(Parameter<P> param, P value);
@Override
NativeQueryImplementor<T> setParameter(String name, Object val);
@Override
<P> NativeQueryImplementor<T> setParameter(QueryParameter<P> parameter, P val, Type type);
@Override
NativeQueryImplementor<T> setParameter(int position, Object val);
@Override
NativeQueryImplementor<T> setParameter(String name, Object val, Type type);
@Override
NativeQueryImplementor<T> setParameter(int position, Object val, Type type);
@Override
<P> NativeQueryImplementor<T> setParameter(QueryParameter<P> parameter, P val, TemporalType temporalType);
@Override
NativeQueryImplementor<T> setParameter(String name, Object val, TemporalType temporalType);
@Override
NativeQueryImplementor<T> setParameter(int position, Object val, TemporalType temporalType);
@Override
<P> NativeQueryImplementor<T> setParameterList(QueryParameter<P> parameter, Collection<P> values);
@Override
NativeQueryImplementor<T> setParameterList(String name, Collection values);
@Override
NativeQueryImplementor<T> setParameterList(String name, Collection values, Type type);
@Override
NativeQueryImplementor<T> setParameterList(String name, Object[] values, Type type);
@Override
NativeQueryImplementor<T> setParameterList(String name, Object[] values);
@Override
NativeQueryImplementor<T> setProperties(Object bean);
@Override
NativeQueryImplementor<T> setProperties(Map bean);
@Override
NativeQueryImplementor<T> setParameter(Parameter<Date> param, Date value, TemporalType temporalType);
@Override
NativeQueryImplementor<T> setParameter(Parameter<Calendar> param, Calendar value, TemporalType temporalType);
@Override
NativeQueryImplementor<T> setParameter(String name, Date value, TemporalType temporalType);
@Override
NativeQueryImplementor<T> setParameter(String name, Calendar value, TemporalType temporalType);
@Override
NativeQueryImplementor<T> setParameter(int position, Calendar value, TemporalType temporalType);
@Override
NativeQueryImplementor<T> setParameter(int position, Date value, TemporalType temporalType);
@Override
NativeQueryImplementor<T> addSynchronizedQuerySpace(String querySpace);
@Override
NativeQueryImplementor<T> addSynchronizedEntityName(String entityName) throws MappingException;
@Override
NativeQueryImplementor<T> setFlushMode(FlushMode flushMode);
@Override
NativeQueryImplementor<T> addSynchronizedEntityClass(Class entityClass) throws MappingException;
}