HHH-12424 - Fix unintended binary compatibility breaks between 5.1 and 5.3
This commit is contained in:
parent
c22540ab65
commit
bf0741caf4
|
@ -17,7 +17,7 @@ import org.hibernate.type.Type;
|
|||
* @deprecated (since 5.2) use {@link CommonQueryContract} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public interface BasicQueryContract {
|
||||
public interface BasicQueryContract<T extends BasicQueryContract> {
|
||||
/**
|
||||
* (Re)set the current FlushMode in effect for this query.
|
||||
*
|
||||
|
@ -55,7 +55,7 @@ public interface BasicQueryContract {
|
|||
*
|
||||
* @see #getHibernateFlushMode()
|
||||
*/
|
||||
CommonQueryContract setHibernateFlushMode(FlushMode flushMode);
|
||||
T setHibernateFlushMode(FlushMode flushMode);
|
||||
|
||||
/**
|
||||
* Obtain the CacheMode in effect for this query. By default, the query inherits the CacheMode of the Session
|
||||
|
@ -80,7 +80,7 @@ public interface BasicQueryContract {
|
|||
*
|
||||
* @see #getCacheMode()
|
||||
*/
|
||||
CommonQueryContract setCacheMode(CacheMode cacheMode);
|
||||
T setCacheMode(CacheMode cacheMode);
|
||||
|
||||
/**
|
||||
* Are the results of this query eligible for second level query caching? This is different that second level
|
||||
|
@ -105,7 +105,7 @@ public interface BasicQueryContract {
|
|||
*
|
||||
* @see #isCacheable
|
||||
*/
|
||||
CommonQueryContract setCacheable(boolean cacheable);
|
||||
T setCacheable(boolean cacheable);
|
||||
|
||||
/**
|
||||
* Obtain the name of the second level query cache region in which query results will be stored (if they are
|
||||
|
@ -127,7 +127,7 @@ public interface BasicQueryContract {
|
|||
*
|
||||
* @see #getCacheRegion()
|
||||
*/
|
||||
CommonQueryContract setCacheRegion(String cacheRegion);
|
||||
T setCacheRegion(String cacheRegion);
|
||||
|
||||
/**
|
||||
* Obtain the query timeout <b>in seconds</b>. This value is eventually passed along to the JDBC query via
|
||||
|
@ -152,7 +152,7 @@ public interface BasicQueryContract {
|
|||
*
|
||||
* @see #getTimeout()
|
||||
*/
|
||||
CommonQueryContract setTimeout(int timeout);
|
||||
T setTimeout(int timeout);
|
||||
|
||||
/**
|
||||
* Obtain the JDBC fetch size hint in effect for this query. This value is eventually passed along to the JDBC
|
||||
|
@ -178,7 +178,7 @@ public interface BasicQueryContract {
|
|||
*
|
||||
* @see #getFetchSize()
|
||||
*/
|
||||
CommonQueryContract setFetchSize(int fetchSize);
|
||||
T setFetchSize(int fetchSize);
|
||||
|
||||
/**
|
||||
* Should entities and proxies loaded by this Query be put in read-only mode? If the
|
||||
|
@ -224,7 +224,7 @@ public interface BasicQueryContract {
|
|||
* are to be put in read-only mode; {@code false} indicates that entities and proxies
|
||||
* loaded by the query will be put in modifiable mode
|
||||
*/
|
||||
CommonQueryContract setReadOnly(boolean readOnly);
|
||||
T setReadOnly(boolean readOnly);
|
||||
|
||||
/**
|
||||
* Return the Hibernate types of the query results.
|
||||
|
|
|
@ -65,7 +65,7 @@ public interface SQLQuery<T> extends Query<T>, SynchronizeableQuery<T> {
|
|||
*
|
||||
* @return this, for method chaining
|
||||
*/
|
||||
NativeQuery<T> setResultSetMapping(String name);
|
||||
SQLQuery<T> setResultSetMapping(String name);
|
||||
|
||||
/**
|
||||
* Is this native-SQL query known to be callable?
|
||||
|
@ -90,7 +90,7 @@ public interface SQLQuery<T> extends Query<T>, SynchronizeableQuery<T> {
|
|||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*/
|
||||
NativeQuery<T> addScalar(String columnAlias);
|
||||
SQLQuery<T> addScalar(String columnAlias);
|
||||
|
||||
/**
|
||||
* Declare a scalar query result.
|
||||
|
@ -102,7 +102,7 @@ public interface SQLQuery<T> extends Query<T>, SynchronizeableQuery<T> {
|
|||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*/
|
||||
NativeQuery<T> addScalar(String columnAlias, Type type);
|
||||
SQLQuery<T> addScalar(String columnAlias, Type type);
|
||||
|
||||
/**
|
||||
* Add a new root return mapping, returning a {@link NativeQuery.RootReturn} to allow further definition.
|
||||
|
@ -138,7 +138,7 @@ public interface SQLQuery<T> extends Query<T>, SynchronizeableQuery<T> {
|
|||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*/
|
||||
NativeQuery<T> addEntity(String entityName);
|
||||
SQLQuery<T> addEntity(String entityName);
|
||||
|
||||
/**
|
||||
* Declare a "root" entity.
|
||||
|
@ -148,7 +148,7 @@ public interface SQLQuery<T> extends Query<T>, SynchronizeableQuery<T> {
|
|||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*/
|
||||
NativeQuery<T> addEntity(String tableAlias, String entityName);
|
||||
SQLQuery<T> addEntity(String tableAlias, String entityName);
|
||||
|
||||
/**
|
||||
* Declare a "root" entity, specifying a lock mode.
|
||||
|
@ -159,7 +159,7 @@ public interface SQLQuery<T> extends Query<T>, SynchronizeableQuery<T> {
|
|||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*/
|
||||
NativeQuery<T> addEntity(String tableAlias, String entityName, LockMode lockMode);
|
||||
SQLQuery<T> addEntity(String tableAlias, String entityName, LockMode lockMode);
|
||||
|
||||
/**
|
||||
* Declare a "root" entity, without specifying an alias. The expectation here is that the table alias is the
|
||||
|
@ -169,7 +169,7 @@ public interface SQLQuery<T> extends Query<T>, SynchronizeableQuery<T> {
|
|||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*/
|
||||
NativeQuery<T> addEntity(Class entityType);
|
||||
SQLQuery<T> addEntity(Class entityType);
|
||||
|
||||
/**
|
||||
* Declare a "root" entity.
|
||||
|
@ -179,7 +179,7 @@ public interface SQLQuery<T> extends Query<T>, SynchronizeableQuery<T> {
|
|||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*/
|
||||
NativeQuery<T> addEntity(String tableAlias, Class entityType);
|
||||
SQLQuery<T> addEntity(String tableAlias, Class entityType);
|
||||
|
||||
/**
|
||||
* Declare a "root" entity, specifying a lock mode.
|
||||
|
@ -190,7 +190,7 @@ public interface SQLQuery<T> extends Query<T>, SynchronizeableQuery<T> {
|
|||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*/
|
||||
NativeQuery<T> addEntity(String tableAlias, Class entityClass, LockMode lockMode);
|
||||
SQLQuery<T> addEntity(String tableAlias, Class entityClass, LockMode lockMode);
|
||||
|
||||
/**
|
||||
* Declare a join fetch result.
|
||||
|
@ -214,7 +214,7 @@ public interface SQLQuery<T> extends Query<T>, SynchronizeableQuery<T> {
|
|||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*/
|
||||
NativeQuery<T> addJoin(String tableAlias, String path);
|
||||
SQLQuery<T> addJoin(String tableAlias, String path);
|
||||
|
||||
/**
|
||||
* Declare a join fetch result.
|
||||
|
@ -228,7 +228,7 @@ public interface SQLQuery<T> extends Query<T>, SynchronizeableQuery<T> {
|
|||
*
|
||||
* @since 3.6
|
||||
*/
|
||||
NativeQuery<T> addJoin(String tableAlias, String ownerTableAlias, String joinPropertyName);
|
||||
SQLQuery<T> addJoin(String tableAlias, String ownerTableAlias, String joinPropertyName);
|
||||
|
||||
/**
|
||||
* Declare a join fetch result, specifying a lock mode.
|
||||
|
@ -239,7 +239,7 @@ public interface SQLQuery<T> extends Query<T>, SynchronizeableQuery<T> {
|
|||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*/
|
||||
NativeQuery<T> addJoin(String tableAlias, String path, LockMode lockMode);
|
||||
SQLQuery<T> addJoin(String tableAlias, String path, LockMode lockMode);
|
||||
|
||||
/**
|
||||
* Allows access to further control how properties within a root or join fetch are mapped back from the result set.
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
package org.hibernate;
|
||||
|
||||
import java.io.Closeable;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
import java.sql.Blob;
|
||||
|
@ -30,7 +31,7 @@ import org.hibernate.type.Type;
|
|||
*
|
||||
* @author Gavin King
|
||||
*/
|
||||
public interface ScrollableResults extends AutoCloseable {
|
||||
public interface ScrollableResults extends AutoCloseable, Closeable {
|
||||
|
||||
/**
|
||||
* Release resources immediately.
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
package org.hibernate;
|
||||
|
||||
import java.io.Closeable;
|
||||
import java.io.Serializable;
|
||||
import java.sql.Connection;
|
||||
import javax.persistence.EntityManager;
|
||||
|
@ -80,7 +81,7 @@ import org.hibernate.stat.SessionStatistics;
|
|||
* @author Gavin King
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
public interface Session extends SharedSessionContract, EntityManager, HibernateEntityManager, AutoCloseable {
|
||||
public interface Session extends SharedSessionContract, EntityManager, HibernateEntityManager, AutoCloseable, Closeable {
|
||||
/**
|
||||
* Obtain a {@link Session} builder with the ability to grab certain information from this session.
|
||||
*
|
||||
|
@ -681,8 +682,10 @@ public interface Session extends SharedSessionContract, EntityManager, Hibernate
|
|||
* @param queryString a Hibernate query fragment.
|
||||
*
|
||||
* @return The query instance for manipulation and execution
|
||||
*
|
||||
* @deprecated (since 5.3)
|
||||
*/
|
||||
org.hibernate.query.Query createFilter(Object collection, String queryString);
|
||||
org.hibernate.Query createFilter(Object collection, String queryString);
|
||||
|
||||
/**
|
||||
* Completely clear the session. Evict all loaded instances and cancel all pending
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
package org.hibernate;
|
||||
|
||||
import java.io.Closeable;
|
||||
import java.io.Serializable;
|
||||
import java.sql.Connection;
|
||||
|
||||
|
@ -25,7 +26,7 @@ import java.sql.Connection;
|
|||
*
|
||||
* @author Gavin King
|
||||
*/
|
||||
public interface StatelessSession extends SharedSessionContract, AutoCloseable {
|
||||
public interface StatelessSession extends SharedSessionContract, AutoCloseable, Closeable {
|
||||
/**
|
||||
* Close the stateless session and release the JDBC connection.
|
||||
*/
|
||||
|
|
|
@ -207,6 +207,10 @@ public final class Settings {
|
|||
return sessionFactoryOptions.isJtaTrackByThread();
|
||||
}
|
||||
|
||||
public boolean isStrictJPAQLCompliance() {
|
||||
return sessionFactoryOptions.isStrictJpaQueryLanguageCompliance();
|
||||
}
|
||||
|
||||
public Map getQuerySubstitutions() {
|
||||
return sessionFactoryOptions.getQuerySubstitutions();
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
package org.hibernate.engine;
|
||||
|
||||
import java.io.Closeable;
|
||||
import java.util.Iterator;
|
||||
|
||||
import org.hibernate.JDBCException;
|
||||
|
@ -18,7 +19,7 @@ import org.hibernate.JDBCException;
|
|||
*
|
||||
* @author Gavin King
|
||||
*/
|
||||
public interface HibernateIterator extends Iterator, AutoCloseable {
|
||||
public interface HibernateIterator extends Iterator, AutoCloseable, Closeable {
|
||||
/**
|
||||
* Close the Hibernate query result iterator
|
||||
*
|
||||
|
|
|
@ -38,6 +38,7 @@ import org.hibernate.LockMode;
|
|||
import org.hibernate.LockOptions;
|
||||
import org.hibernate.MultiIdentifierLoadAccess;
|
||||
import org.hibernate.NaturalIdLoadAccess;
|
||||
import org.hibernate.Query;
|
||||
import org.hibernate.ReplicationMode;
|
||||
import org.hibernate.ScrollMode;
|
||||
import org.hibernate.Session;
|
||||
|
@ -953,7 +954,7 @@ public class SessionDelegatorBaseImpl implements SessionImplementor {
|
|||
}
|
||||
|
||||
@Override
|
||||
public org.hibernate.query.Query createFilter(Object collection, String queryString) {
|
||||
public Query createFilter(Object collection, String queryString) {
|
||||
return delegate.createFilter( collection, queryString );
|
||||
}
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ import javax.persistence.EntityManagerFactory;
|
|||
import javax.persistence.metamodel.EntityType;
|
||||
|
||||
import org.hibernate.Metamodel;
|
||||
import org.hibernate.boot.spi.SessionFactoryOptions;
|
||||
import org.hibernate.engine.spi.SessionFactoryImplementor;
|
||||
|
||||
/**
|
||||
|
@ -50,6 +51,22 @@ public interface HibernateEntityManagerFactory extends EntityManagerFactory, Ser
|
|||
@Override
|
||||
Metamodel getMetamodel();
|
||||
|
||||
/**
|
||||
* Returns the name of the factory. The name is either can be specified via the property <i>hibernate.ejb.entitymanager_factory_name</i>.
|
||||
* If the property is not set the persistence unit name is used. If persistence unit name is not available, a unique
|
||||
* name will be generated.
|
||||
*
|
||||
* @return the name of the factory.
|
||||
*
|
||||
* @deprecated - no longer necessary. all references can be directly replaced with
|
||||
* calls to {@link SessionFactoryOptions#getSessionFactoryName()}
|
||||
* via {@link #getSessionFactory()} -> {@link SessionFactoryImplementor#getSessionFactoryOptions()}
|
||||
*/
|
||||
@Deprecated
|
||||
default String getEntityManagerFactoryName() {
|
||||
return (String) getProperties().get( AvailableSettings.ENTITY_MANAGER_FACTORY_NAME );
|
||||
}
|
||||
|
||||
/**
|
||||
* Find an entity type by name
|
||||
*
|
||||
|
|
|
@ -10,6 +10,7 @@ import java.io.Serializable;
|
|||
import java.util.Map;
|
||||
|
||||
import org.hibernate.HibernateException;
|
||||
import org.hibernate.engine.spi.SessionImplementor;
|
||||
import org.hibernate.engine.spi.SharedSessionContractImplementor;
|
||||
import org.hibernate.type.Type;
|
||||
|
||||
|
@ -116,12 +117,24 @@ public interface ClassMetadata {
|
|||
// stuff that is tuplizer-centric, but is passed a session ~~~~~~~~~~~~~~~~
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
/**
|
||||
* Return the values of the mapped properties of the object
|
||||
*
|
||||
* @deprecated (since 5.3) Use the form accepting SharedSessionContractImplementor
|
||||
* instead
|
||||
*/
|
||||
@Deprecated
|
||||
@SuppressWarnings({"UnusedDeclaration"})
|
||||
default Object[] getPropertyValuesToInsert(Object entity, Map mergeMap, SessionImplementor session)
|
||||
throws HibernateException {
|
||||
return getPropertyValuesToInsert( entity, mergeMap, (SharedSessionContractImplementor) session );
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the values of the mapped properties of the object
|
||||
*/
|
||||
@SuppressWarnings( {"UnusedDeclaration"})
|
||||
Object[] getPropertyValuesToInsert(Object entity, Map mergeMap, SharedSessionContractImplementor session)
|
||||
throws HibernateException;
|
||||
Object[] getPropertyValuesToInsert(Object entity, Map mergeMap, SharedSessionContractImplementor session) throws HibernateException;
|
||||
|
||||
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -133,6 +146,22 @@ public interface ClassMetadata {
|
|||
*/
|
||||
Class getMappedClass();
|
||||
|
||||
/**
|
||||
* Create a class instance initialized with the given identifier
|
||||
*
|
||||
* @param id The identifier value to use (may be null to represent no value)
|
||||
* @param session The session from which the request originated.
|
||||
*
|
||||
* @return The instantiated entity.
|
||||
*
|
||||
* @deprecated (since 5.3) Use the form accepting SharedSessionContractImplementor
|
||||
* instead
|
||||
*/
|
||||
@Deprecated
|
||||
default Object instantiate(Serializable id, SessionImplementor session) {
|
||||
return instantiate( id, (SharedSessionContractImplementor) session );
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a class instance initialized with the given identifier
|
||||
*
|
||||
|
@ -176,6 +205,21 @@ public interface ClassMetadata {
|
|||
@SuppressWarnings( {"JavaDoc"})
|
||||
Serializable getIdentifier(Object object) throws HibernateException;
|
||||
|
||||
/**
|
||||
* Get the identifier of an instance (throw an exception if no identifier property)
|
||||
*
|
||||
* @param entity The entity for which to get the identifier
|
||||
* @param session The session from which the request originated
|
||||
*
|
||||
* @return The identifier
|
||||
*
|
||||
* @deprecated Use {@link #getIdentifier(Object, SharedSessionContractImplementor)} instead
|
||||
*/
|
||||
@Deprecated
|
||||
default Serializable getIdentifier(Object entity, SessionImplementor session) {
|
||||
return getIdentifier( entity, (SharedSessionContractImplementor) session );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the identifier of an instance (throw an exception if no identifier property)
|
||||
*
|
||||
|
@ -186,6 +230,20 @@ public interface ClassMetadata {
|
|||
*/
|
||||
Serializable getIdentifier(Object entity, SharedSessionContractImplementor session);
|
||||
|
||||
/**
|
||||
* Inject the identifier value into the given entity.
|
||||
*
|
||||
* @param entity The entity to inject with the identifier value.
|
||||
* @param id The value to be injected as the identifier.
|
||||
* @param session The session from which is requests originates
|
||||
*
|
||||
* @deprecated Use {@link #setIdentifier(Object, Serializable, SharedSessionContractImplementor)} instead
|
||||
*/
|
||||
@Deprecated
|
||||
default void setIdentifier(Object entity, Serializable id, SessionImplementor session) {
|
||||
setIdentifier( entity, id, (SharedSessionContractImplementor) session );
|
||||
}
|
||||
|
||||
/**
|
||||
* Inject the identifier value into the given entity.
|
||||
*
|
||||
|
|
|
@ -14,13 +14,14 @@ import javax.persistence.StoredProcedureQuery;
|
|||
import org.hibernate.BasicQueryContract;
|
||||
import org.hibernate.MappingException;
|
||||
import org.hibernate.SynchronizeableQuery;
|
||||
import org.hibernate.query.CommonQueryContract;
|
||||
|
||||
/**
|
||||
* Defines support for executing database stored procedures and functions
|
||||
*
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
public interface ProcedureCall extends BasicQueryContract, SynchronizeableQuery, StoredProcedureQuery {
|
||||
public interface ProcedureCall extends BasicQueryContract<CommonQueryContract>, SynchronizeableQuery, StoredProcedureQuery {
|
||||
@Override
|
||||
ProcedureCall addSynchronizedQuerySpace(String querySpace);
|
||||
|
||||
|
|
|
@ -14,5 +14,5 @@ package org.hibernate.query;
|
|||
* @author Steve Ebersole
|
||||
* @author Gavin King
|
||||
*/
|
||||
public interface CommonQueryContract extends org.hibernate.BasicQueryContract {
|
||||
public interface CommonQueryContract extends org.hibernate.BasicQueryContract<CommonQueryContract> {
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue