diff --git a/hibernate-core/src/main/java/org/hibernate/query/NativeQuery.java b/hibernate-core/src/main/java/org/hibernate/query/NativeQuery.java index 0cbfe00c9d08..d8144d384673 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/NativeQuery.java +++ b/hibernate-core/src/main/java/org/hibernate/query/NativeQuery.java @@ -6,14 +6,24 @@ */ package org.hibernate.query; +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.Map; + +import javax.persistence.FlushModeType; +import javax.persistence.LockModeType; import javax.persistence.Parameter; import javax.persistence.TemporalType; +import org.hibernate.CacheMode; import org.hibernate.FlushMode; +import org.hibernate.LockMode; +import org.hibernate.LockOptions; import org.hibernate.MappingException; import org.hibernate.SQLQuery; import org.hibernate.SynchronizeableQuery; @@ -23,6 +33,7 @@ * @author Steve Ebersole */ public interface NativeQuery extends Query, SQLQuery, SynchronizeableQuery { + @Override NativeQuery setFlushMode(FlushMode flushMode); @@ -77,6 +88,42 @@ public interface NativeQuery extends Query, SQLQuery, SynchronizeableQu @Override NativeQuery setParameter(int position, Date value, TemporalType temporalType); + @Override + NativeQuery setParameter(Parameter param, Instant value, TemporalType temporalType); + + @Override + NativeQuery setParameter(Parameter param, LocalDateTime value, TemporalType temporalType); + + @Override + NativeQuery setParameter(Parameter param, ZonedDateTime value, TemporalType temporalType); + + @Override + NativeQuery setParameter(Parameter param, OffsetDateTime value, TemporalType temporalType); + + @Override + NativeQuery setParameter(String name, Instant value, TemporalType temporalType); + + @Override + NativeQuery setParameter(String name, LocalDateTime value, TemporalType temporalType); + + @Override + NativeQuery setParameter(String name, ZonedDateTime value, TemporalType temporalType); + + @Override + NativeQuery setParameter(String name, OffsetDateTime value, TemporalType temporalType); + + @Override + NativeQuery setParameter(int position, Instant value, TemporalType temporalType); + + @Override + NativeQuery setParameter(int position, LocalDateTime value, TemporalType temporalType); + + @Override + NativeQuery setParameter(int position, ZonedDateTime value, TemporalType temporalType); + + @Override + NativeQuery setParameter(int position, OffsetDateTime value, TemporalType temporalType); + @Override

NativeQuery setParameterList(QueryParameter

parameter, Collection

values); @@ -106,4 +153,97 @@ public interface NativeQuery extends Query, SQLQuery, SynchronizeableQu @Override NativeQuery addSynchronizedEntityClass(Class entityClass) throws MappingException; + + @Override + boolean isCallable(); + + @Override + NativeQuery addScalar(String columnAlias); + + @Override + NativeQuery addScalar(String columnAlias, Type type); + + @Override + RootReturn addRoot(String tableAlias, String entityName); + + @Override + RootReturn addRoot(String tableAlias, Class entityType); + + @Override + NativeQuery addEntity(String entityName); + + @Override + NativeQuery addEntity(String tableAlias, String entityName); + + @Override + NativeQuery addEntity(String tableAlias, String entityName, LockMode lockMode); + + @Override + NativeQuery addEntity(Class entityType); + + @Override + NativeQuery addEntity(String tableAlias, Class entityType); + + @Override + NativeQuery addEntity(String tableAlias, Class entityClass, LockMode lockMode); + + @Override + FetchReturn addFetch(String tableAlias, String ownerTableAlias, String joinPropertyName); + + @Override + NativeQuery addJoin(String tableAlias, String path); + + @Override + NativeQuery addJoin(String tableAlias, String ownerTableAlias, String joinPropertyName); + + @Override + NativeQuery addJoin(String tableAlias, String path, LockMode lockMode); + + @Override + NativeQuery setHibernateFlushMode(FlushMode flushMode); + + @Override + NativeQuery setFlushMode(FlushModeType flushMode); + + @Override + NativeQuery setCacheMode(CacheMode cacheMode); + + @Override + NativeQuery setCacheable(boolean cacheable); + + @Override + NativeQuery setCacheRegion(String cacheRegion); + + @Override + NativeQuery setTimeout(int timeout); + + @Override + NativeQuery setFetchSize(int fetchSize); + + @Override + NativeQuery setReadOnly(boolean readOnly); + + @Override + NativeQuery setLockOptions(LockOptions lockOptions); + + @Override + NativeQuery setLockMode(String alias, LockMode lockMode); + + @Override + NativeQuery setComment(String comment); + + @Override + NativeQuery addQueryHint(String hint); + + @Override + NativeQuery setMaxResults(int maxResult); + + @Override + NativeQuery setFirstResult(int startPosition); + + @Override + NativeQuery setHint(String hintName, Object value); + + @Override + NativeQuery setLockMode(LockModeType lockMode); } diff --git a/hibernate-core/src/main/java/org/hibernate/query/internal/NativeQueryImpl.java b/hibernate-core/src/main/java/org/hibernate/query/internal/NativeQueryImpl.java index f4eb4ddfa14d..671c8f4cf0f2 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/internal/NativeQueryImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/query/internal/NativeQueryImpl.java @@ -7,6 +7,10 @@ package org.hibernate.query.internal; import java.io.Serializable; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.OffsetDateTime; +import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; @@ -626,6 +630,78 @@ public NativeQueryImplementor setParameter(int position, Object value, Tempor return this; } + @Override + public NativeQueryImplementor setParameter(Parameter param, Instant value, TemporalType temporalType) { + super.setParameter( param, value, temporalType ); + return this; + } + + @Override + public NativeQueryImplementor setParameter(Parameter param, LocalDateTime value, TemporalType temporalType) { + super.setParameter( param, value, temporalType ); + return this; + } + + @Override + public NativeQueryImplementor setParameter(Parameter param, ZonedDateTime value, TemporalType temporalType) { + super.setParameter( param, value, temporalType ); + return this; + } + + @Override + public NativeQueryImplementor setParameter(Parameter param, OffsetDateTime value, TemporalType temporalType) { + super.setParameter( param, value, temporalType ); + return this; + } + + @Override + public NativeQueryImplementor setParameter(String name, Instant value, TemporalType temporalType) { + super.setParameter( name, value, temporalType ); + return this; + } + + @Override + public NativeQueryImplementor setParameter(String name, LocalDateTime value, TemporalType temporalType) { + super.setParameter( name, value, temporalType ); + return this; + } + + @Override + public NativeQueryImplementor setParameter(String name, ZonedDateTime value, TemporalType temporalType) { + super.setParameter( name, value, temporalType ); + return this; + } + + @Override + public NativeQueryImplementor setParameter(String name, OffsetDateTime value, TemporalType temporalType) { + super.setParameter( name, value, temporalType ); + return this; + } + + @Override + public NativeQueryImplementor setParameter(int position, Instant value, TemporalType temporalType) { + super.setParameter( position, value, temporalType ); + return this; + } + + @Override + public NativeQueryImplementor setParameter(int position, LocalDateTime value, TemporalType temporalType) { + super.setParameter( position, value, temporalType ); + return this; + } + + @Override + public NativeQueryImplementor setParameter(int position, ZonedDateTime value, TemporalType temporalType) { + super.setParameter( position, value, temporalType ); + return this; + } + + @Override + public NativeQueryImplementor setParameter(int position, OffsetDateTime value, TemporalType temporalType) { + super.setParameter( position, value, temporalType ); + return this; + } + @Override public NativeQueryImplementor setParameterList(QueryParameter parameter, Collection values) { super.setParameterList( parameter, values );