/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
 * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
 */
package org.hibernate.query;

import java.io.Serializable;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.time.ZonedDateTime;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Stream;
import javax.persistence.FlushModeType;
import javax.persistence.LockModeType;
import javax.persistence.Parameter;
import javax.persistence.TemporalType;
import javax.persistence.TypedQuery;

import org.hibernate.CacheMode;
import org.hibernate.FlushMode;
import org.hibernate.Incubating;
import org.hibernate.LockMode;
import org.hibernate.LockOptions;
import org.hibernate.ScrollMode;
import org.hibernate.ScrollableResults;
import org.hibernate.engine.spi.RowSelection;
import org.hibernate.transform.ResultTransformer;
import org.hibernate.type.BigDecimalType;
import org.hibernate.type.BigIntegerType;
import org.hibernate.type.BinaryType;
import org.hibernate.type.BooleanType;
import org.hibernate.type.ByteType;
import org.hibernate.type.CharacterType;
import org.hibernate.type.DateType;
import org.hibernate.type.DoubleType;
import org.hibernate.type.FloatType;
import org.hibernate.type.IntegerType;
import org.hibernate.type.LocaleType;
import org.hibernate.type.LongType;
import org.hibernate.type.ShortType;
import org.hibernate.type.StringType;
import org.hibernate.type.TextType;
import org.hibernate.type.TimeType;
import org.hibernate.type.TimestampType;
import org.hibernate.type.Type;

Represents an HQL/JPQL query or a compiled Criteria query. Also acts as the Hibernate extension to the JPA Query/TypedQuery contract

NOTE: Query is deprecated, and slated for removal in 6.0. For the time being we leave all methods defined on Query rather than here because it was previously the public API so we want to leave that unchanged in 5.x. For 6.0 we will move those methods here and then delete that class.
Author:Steve Ebersole, Gavin King
/** * Represents an HQL/JPQL query or a compiled Criteria query. Also acts as the Hibernate * extension to the JPA Query/TypedQuery contract * <p/> * NOTE: {@link org.hibernate.Query} is deprecated, and slated for removal in 6.0. * For the time being we leave all methods defined on {@link org.hibernate.Query} * rather than here because it was previously the public API so we want to leave that * unchanged in 5.x. For 6.0 we will move those methods here and then delete that class. * * @author Steve Ebersole * @author Gavin King */
@Incubating @SuppressWarnings("UnusedDeclaration") public interface Query<R> extends TypedQuery<R>, org.hibernate.Query<R>, CommonQueryContract {
Get the QueryProducer this Query originates from.
/** * Get the QueryProducer this Query originates from. */
QueryProducer getProducer();
"QueryOptions" is a better name, I think, than "RowSelection" -> 6.0
@todo6.0 rename RowSelection to QueryOptions
Returns:Return the encapsulation of this query's options, which includes access to firstRow, maxRows, timeout and fetchSize. Important because this gives access to those values in their Integer form rather than the primitive form (int) required by JPA.
/** * "QueryOptions" is a better name, I think, than "RowSelection" -> 6.0 * * @todo 6.0 rename RowSelection to QueryOptions * * @return Return the encapsulation of this query's options, which includes access to * firstRow, maxRows, timeout and fetchSize. Important because this gives access to * those values in their Integer form rather than the primitive form (int) required by JPA. */
RowSelection getQueryOptions(); Optional<R> uniqueResultOptional();
Retrieve a Stream over the query results.

In the initial implementation (5.2) this returns a simple sequential Stream. The plan is to return a a smarter stream in 6.x leveraging the SQM model.

You should call BaseStream.close() after processing the stream so that the underlying resources are deallocated right away.

Returns:The results Stream
Since:5.2
/** * Retrieve a Stream over the query results. * <p/> * In the initial implementation (5.2) this returns a simple sequential Stream. The plan * is to return a a smarter stream in 6.x leveraging the SQM model. * * <p> * * You should call {@link java.util.stream.Stream#close()} after processing the stream * so that the underlying resources are deallocated right away. * * @return The results Stream * * @since 5.2 */
Stream<R> stream(); Query<R> setParameter(Parameter<Instant> param, Instant value, TemporalType temporalType); Query<R> setParameter(Parameter<LocalDateTime> param, LocalDateTime value, TemporalType temporalType); Query<R> setParameter(Parameter<ZonedDateTime> param, ZonedDateTime value, TemporalType temporalType); Query<R> setParameter(Parameter<OffsetDateTime> param, OffsetDateTime value, TemporalType temporalType); Query<R> setParameter(String name, Instant value, TemporalType temporalType); Query<R> setParameter(String name, LocalDateTime value, TemporalType temporalType); Query<R> setParameter(String name, ZonedDateTime value, TemporalType temporalType); Query<R> setParameter(String name, OffsetDateTime value, TemporalType temporalType); Query<R> setParameter(int position, Instant value, TemporalType temporalType); Query<R> setParameter(int position, LocalDateTime value, TemporalType temporalType); Query<R> setParameter(int position, ZonedDateTime value, TemporalType temporalType); Query<R> setParameter(int position, OffsetDateTime value, TemporalType temporalType); // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Overrides for methods we do not want deprecated @Override ScrollableResults scroll(); @Override ScrollableResults scroll(ScrollMode scrollMode); @Override List<R> list(); default List<R> getResultList() { return list(); } @Override R uniqueResult(); default R getSingleResult() { return uniqueResult(); } @Override FlushMode getHibernateFlushMode(); @Override CacheMode getCacheMode(); @Override String getCacheRegion(); @Override Integer getFetchSize(); @Override LockOptions getLockOptions(); @Override String getComment(); @Override String getQueryString(); @Override ParameterMetadata getParameterMetadata(); // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // covariant overrides @Override Query<R> setMaxResults(int maxResult); @Override Query<R> setFirstResult(int startPosition); @Override Query<R> setHint(String hintName, Object value); @Override <T> Query<R> setParameter(Parameter<T> param, T value); @Override Query<R> setParameter(Parameter<Calendar> param, Calendar value, TemporalType temporalType); @Override Query<R> setParameter(Parameter<Date> param, Date value, TemporalType temporalType); @Override Query<R> setParameter(String name, Object value); @Override Query<R> setParameter(String name, Object val, Type type); @Override Query<R> setParameter(String name, Calendar value, TemporalType temporalType); @Override Query<R> setParameter(String name, Date value, TemporalType temporalType); @Override Query<R> setParameter(int position, Object value); @Override Query<R> setParameter(int position, Calendar value, TemporalType temporalType); @Override Query<R> setParameter(int position, Date value, TemporalType temporalType); @Override <T> Query<R> setParameter(QueryParameter<T> parameter, T val); @Override <P> Query<R> setParameter(int position, P val, TemporalType temporalType); @Override <P> Query<R> setParameter(QueryParameter<P> parameter, P val, Type type); @Override Query<R> setParameter(int position, Object val, Type type); @Override <P> Query<R> setParameter(QueryParameter<P> parameter, P val, TemporalType temporalType); @Override <P> Query<R> setParameter(String name, P val, TemporalType temporalType); @Override Query<R> setFlushMode(FlushModeType flushMode); @Override Query<R> setLockMode(LockModeType lockMode); @Override Query<R> setReadOnly(boolean readOnly); @Override Query<R> setHibernateFlushMode(FlushMode flushMode); @Override Query<R> setCacheMode(CacheMode cacheMode); @Override Query<R> setCacheable(boolean cacheable); @Override Query<R> setCacheRegion(String cacheRegion); @Override Query<R> setTimeout(int timeout); @Override Query<R> setFetchSize(int fetchSize); @Override Query<R> setLockOptions(LockOptions lockOptions); @Override Query<R> setLockMode(String alias, LockMode lockMode); @Override Query<R> setComment(String comment); @Override Query<R> addQueryHint(String hint); @Override <P> Query<R> setParameterList(QueryParameter<P> parameter, Collection<P> values); @Override Query<R> setParameterList(String name, Collection values); @Override Query<R> setParameterList(String name, Collection values, Type type); @Override Query<R> setParameterList(String name, Object[] values, Type type); @Override Query<R> setParameterList(String name, Object[] values); @Override Query<R> setProperties(Object bean); @Override Query<R> setProperties(Map bean); // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // deprecations
(Re)set the current FlushMode in effect for this query.
Params:
  • flushMode – The new FlushMode to use.
See Also:
Returns:this, for method chaining
Deprecated:(since 5.2) use setHibernateFlushMode instead
/** * (Re)set the current FlushMode in effect for this query. * * @param flushMode The new FlushMode to use. * * @return {@code this}, for method chaining * * @see #getHibernateFlushMode() * * @deprecated (since 5.2) use {@link #setHibernateFlushMode} instead */
@Override @Deprecated default Query<R> setFlushMode(FlushMode flushMode) { setHibernateFlushMode( flushMode ); return this; }
Bind a positional String-valued parameter.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional String-valued parameter. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setString(int position, String val) { setParameter( position, val, StringType.INSTANCE ); return this; }
Bind a positional char-valued parameter.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional char-valued parameter. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setCharacter(int position, char val) { setParameter( position, val, CharacterType.INSTANCE ); return this; }
Bind a positional boolean-valued parameter.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional boolean-valued parameter. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setBoolean(int position, boolean val) { setParameter( position, val, determineProperBooleanType( position, val, BooleanType.INSTANCE ) ); return this; }
Bind a positional byte-valued parameter.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional byte-valued parameter. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setByte(int position, byte val) { setParameter( position, val, ByteType.INSTANCE ); return this; }
Bind a positional short-valued parameter.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional short-valued parameter. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setShort(int position, short val) { setParameter( position, val, ShortType.INSTANCE ); return this; }
Bind a positional int-valued parameter.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional int-valued parameter. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setInteger(int position, int val) { setParameter( position, val, IntegerType.INSTANCE ); return this; }
Bind a positional long-valued parameter.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional long-valued parameter. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setLong(int position, long val) { setParameter( position, val, LongType.INSTANCE ); return this; }
Bind a positional float-valued parameter.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional float-valued parameter. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setFloat(int position, float val) { setParameter( position, val, FloatType.INSTANCE ); return this; }
Bind a positional double-valued parameter.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional double-valued parameter. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setDouble(int position, double val) { setParameter( position, val, DoubleType.INSTANCE ); return this; }
Bind a positional binary-valued parameter.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional binary-valued parameter. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setBinary(int position, byte[] val) { setParameter( position, val, BinaryType.INSTANCE ); return this; }
Bind a positional String-valued parameter using streaming.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional String-valued parameter using streaming. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setText(int position, String val) { setParameter( position, val, TextType.INSTANCE ); return this; }
Bind a positional binary-valued parameter using serialization.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional binary-valued parameter using serialization. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setSerializable(int position, Serializable val) { setParameter( position, val ); return this; }
Bind a positional Locale-valued parameter.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional Locale-valued parameter. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setLocale(int position, Locale val) { setParameter( position, val, LocaleType.INSTANCE ); return this; }
Bind a positional BigDecimal-valued parameter.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional BigDecimal-valued parameter. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setBigDecimal(int position, BigDecimal val) { setParameter( position, val, BigDecimalType.INSTANCE ); return this; }
Bind a positional BigDecimal-valued parameter.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional BigDecimal-valued parameter. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setBigInteger(int position, BigInteger val) { setParameter( position, val, BigIntegerType.INSTANCE ); return this; }
Bind a positional Date-valued parameter using just the Date portion.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional Date-valued parameter using just the Date portion. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setDate(int position, Date val) { setParameter( position, val, DateType.INSTANCE ); return this; }
Bind a positional Date-valued parameter using just the Time portion.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional Date-valued parameter using just the Time portion. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setTime(int position, Date val) { setParameter( position, val, TimeType.INSTANCE ); return this; }
Bind a positional Date-valued parameter using the full Timestamp.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional Date-valued parameter using the full Timestamp. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setTimestamp(int position, Date val) { setParameter( position, val, TimestampType.INSTANCE ); return this; }
Bind a positional Calendar-valued parameter using the full Timestamp portion.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional Calendar-valued parameter using the full Timestamp portion. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setCalendar(int position, Calendar val) { setParameter( position, val, TimestampType.INSTANCE ); return this; }
Bind a positional Calendar-valued parameter using just the Date portion.
Params:
  • position – The parameter position
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(int, Object) or setParameter(int, Object, Type) instead
/** * Bind a positional Calendar-valued parameter using just the Date portion. * * @param position The parameter position * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setCalendarDate(int position, Calendar val) { setParameter( position, val, DateType.INSTANCE ); return this; }
Bind a named String-valued parameter.
Params:
  • name – The parameter name
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind a named String-valued parameter. * * @param name The parameter name * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setString(String name, String val) { setParameter( name, val, StringType.INSTANCE ); return this; }
Bind a named char-valued parameter.
Params:
  • name – The parameter name
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind a named char-valued parameter. * * @param name The parameter name * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setCharacter(String name, char val) { setParameter( name, val, CharacterType.INSTANCE ); return this; }
Bind a named boolean-valued parameter.
Params:
  • name – The parameter name
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind a named boolean-valued parameter. * * @param name The parameter name * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setBoolean(String name, boolean val) { setParameter( name, val, determineProperBooleanType( name, val, BooleanType.INSTANCE ) ); return this; }
Bind a named byte-valued parameter.
Params:
  • name – The parameter name
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind a named byte-valued parameter. * * @param name The parameter name * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setByte(String name, byte val) { setParameter( name, val, ByteType.INSTANCE ); return this; }
Bind a named short-valued parameter.
Params:
  • name – The parameter name
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind a named short-valued parameter. * * @param name The parameter name * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setShort(String name, short val) { setParameter( name, val, ShortType.INSTANCE ); return this; }
Bind a named int-valued parameter.
Params:
  • name – The parameter name
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind a named int-valued parameter. * * @param name The parameter name * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setInteger(String name, int val) { setParameter( name, val, IntegerType.INSTANCE ); return this; }
Bind a named long-valued parameter.
Params:
  • name – The parameter name
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind a named long-valued parameter. * * @param name The parameter name * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setLong(String name, long val) { setParameter( name, val, LongType.INSTANCE ); return this; }
Bind a named float-valued parameter.
Params:
  • name – The parameter name
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind a named float-valued parameter. * * @param name The parameter name * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setFloat(String name, float val) { setParameter( name, val, FloatType.INSTANCE ); return this; }
Bind a named double-valued parameter.
Params:
  • name – The parameter name
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind a named double-valued parameter. * * @param name The parameter name * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setDouble(String name, double val) { setParameter( name, val, DoubleType.INSTANCE ); return this; }
Bind a named binary-valued parameter.
Params:
  • name – The parameter name
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind a named binary-valued parameter. * * @param name The parameter name * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setBinary(String name, byte[] val) { setParameter( name, val, BinaryType.INSTANCE ); return this; }
Bind a named String-valued parameter using streaming.
Params:
  • name – The parameter name
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind a named String-valued parameter using streaming. * * @param name The parameter name * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setText(String name, String val) { setParameter( name, val, TextType.INSTANCE ); return this; }
Bind a named binary-valued parameter using serialization.
Params:
  • name – The parameter name
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind a named binary-valued parameter using serialization. * * @param name The parameter name * @param val The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setSerializable(String name, Serializable val) { setParameter( name, val ); return this; }
Bind a named Locale-valued parameter.
Params:
  • name – The parameter name
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind a named Locale-valued parameter. * * @param name The parameter name * @param val The bind value * * @return {@code this}, for method chaining * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setLocale(String name, Locale val) { setParameter( name, val, TextType.INSTANCE ); return this; }
Bind a named BigDecimal-valued parameter.
Params:
  • name – The parameter name
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind a named BigDecimal-valued parameter. * * @param name The parameter name * @param val The bind value * * @return {@code this}, for method chaining * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setBigDecimal(String name, BigDecimal val) { setParameter( name, val, BigDecimalType.INSTANCE ); return this; }
Bind a named BigInteger-valued parameter.
Params:
  • name – The parameter name
  • val – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind a named BigInteger-valued parameter. * * @param name The parameter name * @param val The bind value * * @return {@code this}, for method chaining * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setBigInteger(String name, BigInteger val) { setParameter( name, val, BigIntegerType.INSTANCE ); return this; }
Bind the val (time is truncated) of a given Date object to a named query parameter.
Params:
  • name – The name of the parameter
  • val – The val object
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind the val (time is truncated) of a given Date object to a named query parameter. * * @param name The name of the parameter * @param val The val object * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setDate(String name, Date val) { setParameter( name, val, DateType.INSTANCE ); return this; }
Bind the time (val is truncated) of a given Date object to a named query parameter.
Params:
  • name – The name of the parameter
  • val – The val object
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind the time (val is truncated) of a given Date object to a named query parameter. * * @param name The name of the parameter * @param val The val object * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setTime(String name, Date val) { setParameter( name, val, TimeType.INSTANCE ); return this; }
Bind the value and the time of a given Date object to a named query parameter.
Params:
  • name – The name of the parameter
  • value – The value object
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind the value and the time of a given Date object to a named query parameter. * * @param name The name of the parameter * @param value The value object * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setTimestamp(String name, Date value) { setParameter( name, value, TimestampType.INSTANCE ); return this; }
Bind a named Calendar-valued parameter using the full Timestamp.
Params:
  • name – The parameter name
  • value – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind a named Calendar-valued parameter using the full Timestamp. * * @param name The parameter name * @param value The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setCalendar(String name, Calendar value) { setParameter( name, value, TimestampType.INSTANCE ); return this; }
Bind a named Calendar-valued parameter using just the Date portion.
Params:
  • name – The parameter name
  • value – The bind value
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind a named Calendar-valued parameter using just the Date portion. * * @param name The parameter name * @param value The bind value * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setCalendarDate(String name, Calendar value) { setParameter( name, value, DateType.INSTANCE ); return this; }
Bind an instance of a mapped persistent class to a JDBC-style query parameter. Use setParameter(int, Object) for null values.
Params:
  • position – the position of the parameter in the query string, numbered from 0.
  • val – a non-null instance of a persistent class
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind an instance of a mapped persistent class to a JDBC-style query parameter. * Use {@link #setParameter(int, Object)} for null values. * * @param position the position of the parameter in the query * string, numbered from <tt>0</tt>. * @param val a non-null instance of a persistent class * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") Query<R> setEntity(int position, Object val);
Bind an instance of a mapped persistent class to a named query parameter. Use setParameter(String, Object) for null values.
Params:
  • name – the name of the parameter
  • val – a non-null instance of a persistent class
Returns:this, for method chaining
Deprecated:(since 5.2) use setParameter(String, Object) or setParameter(String, Object, Type) instead
/** * Bind an instance of a mapped persistent class to a named query parameter. Use * {@link #setParameter(String, Object)} for null values. * * @param name the name of the parameter * @param val a non-null instance of a persistent class * * @return {@code this}, for method chaining * * @deprecated (since 5.2) use {@link #setParameter(String, Object)} or {@link #setParameter(String, Object, Type)} * instead */
@Deprecated @SuppressWarnings("unchecked") Query<R> setEntity(String name, Object val);
Set a strategy for handling the query results. This can be used to change "shape" of the query result.
Params:
  • transformer – The transformer to apply
Returns:this (for method chaining)
Deprecated:(since 5.2)
@tododevelop a new approach to result transformers
/** * Set a strategy for handling the query results. This can be used to change * "shape" of the query result. * * @param transformer The transformer to apply * * @return this (for method chaining) * * @deprecated (since 5.2) * @todo develop a new approach to result transformers */
@Deprecated Query<R> setResultTransformer(ResultTransformer transformer);
Bind values and types to positional parameters. Allows binding more than one at a time; no real performance impact. The number of elements in each array should match. That is, element number-0 in types array corresponds to element-0 in the values array, etc,
Params:
  • types – The types
  • values – The values
Returns:this, for method chaining
Deprecated:(since 5.2) Bind values individually
/** * Bind values and types to positional parameters. Allows binding more than one at a time; no real performance * impact. * * The number of elements in each array should match. That is, element number-0 in types array corresponds to * element-0 in the values array, etc, * * @param types The types * @param values The values * * @return {@code this}, for method chaining * * @deprecated (since 5.2) Bind values individually */
@Deprecated @SuppressWarnings("unchecked") default Query<R> setParameters(Object[] values, Type[] types) { assert values.length == types.length; for ( int i = 0; i < values.length; i++ ) { setParameter( i, values[i], types[i] ); } return this; }
JPA 2.2 defines the getResultStream method so to get a Stream from the JDBC ResultSet. Hibernate 5.2 already defines the stream() method, so getResultStream can delegate to it.
Returns:The results Stream
Since:5.2.11
/** * JPA 2.2 defines the {@code getResultStream} method so to get a {@link Stream} from the JDBC {@link java.sql.ResultSet}. * * Hibernate 5.2 already defines the {@link Query#stream()} method, so {@code getResultStream} can delegate to it. * * @return The results Stream * @since 5.2.11 */
default Stream<R> getResultStream() { return stream(); } }