/*
* 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.engine.spi;
import java.io.Serializable;
import java.util.Map;
import java.util.Set;
import javax.persistence.criteria.CriteriaDelete;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.CriteriaUpdate;
import javax.persistence.criteria.Selection;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.jpa.spi.HibernateEntityManagerImplementor;
import org.hibernate.persister.entity.EntityPersister;
import org.hibernate.query.spi.NativeQueryImplementor;
import org.hibernate.query.spi.QueryImplementor;
import org.hibernate.resource.transaction.spi.TransactionCoordinator;
import org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder;
Defines the "internal contract" for Session
and other parts of Hibernate such as Type
, EntityPersister
and CollectionPersister
implementations. A Session, through this interface and SharedSessionContractImplementor, implements:
-
JdbcSessionOwner
to drive the behavior of the JdbcSessionContext
delegate
-
Options
to drive the creation of the TransactionCoordinator
delegate
-
LobCreationContext
to act as the context for JDBC LOB instance creation
-
WrapperOptions
to fulfill the behavior needed while binding/extracting values to/from JDBC as part of the Type contracts
See also EventSource
which extends this interface providing bridge to the event generation features of event
Author: Gavin King, Steve Ebersole
/**
* Defines the "internal contract" for {@link Session} and other parts of Hibernate such as
* {@link org.hibernate.type.Type}, {@link org.hibernate.persister.entity.EntityPersister}
* and {@link org.hibernate.persister.collection.CollectionPersister} implementations.
*
* A Session, through this interface and SharedSessionContractImplementor, implements:<ul>
* <li>
* {@link org.hibernate.resource.jdbc.spi.JdbcSessionOwner} to drive the behavior of the
* {@link org.hibernate.resource.jdbc.spi.JdbcSessionContext} delegate
* </li>
* <li>
* {@link TransactionCoordinatorBuilder.Options}
* to drive the creation of the {@link TransactionCoordinator} delegate
* </li>
* <li>
* {@link org.hibernate.engine.jdbc.LobCreationContext} to act as the context for JDBC LOB instance creation
* </li>
* <li>
* {@link org.hibernate.type.descriptor.WrapperOptions} to fulfill the behavior needed while
* binding/extracting values to/from JDBC as part of the Type contracts
* </li>
* </ul>
*
* See also {@link org.hibernate.event.spi.EventSource} which extends this interface providing
* bridge to the event generation features of {@link org.hibernate.event}
*
* @author Gavin King
* @author Steve Ebersole
*/
public interface SessionImplementor
extends Session, SharedSessionContractImplementor, HibernateEntityManagerImplementor {
@Override
SessionFactoryImplementor getSessionFactory();
Deprecated: (since 5.2) use Session.getHibernateFlushMode()
instead.
/**
* @deprecated (since 5.2) use {@link #getHibernateFlushMode()} instead.
*/
@Deprecated
boolean isFlushBeforeCompletionEnabled();
ActionQueue getActionQueue();
Object instantiate(EntityPersister persister, Serializable id) throws HibernateException;
void forceFlush(EntityEntry e) throws HibernateException;
@Override
QueryImplementor createQuery(String queryString);
@Override
<T> QueryImplementor<T> createQuery(String queryString, Class<T> resultType);
@Override
<T> QueryImplementor<T> createNamedQuery(String name, Class<T> resultType);
@Override
QueryImplementor createNamedQuery(String name);
@Override
NativeQueryImplementor createNativeQuery(String sqlString);
@Override
NativeQueryImplementor createNativeQuery(String sqlString, Class resultClass);
@Override
NativeQueryImplementor createNativeQuery(String sqlString, String resultSetMapping);
@Override
NativeQueryImplementor getNamedNativeQuery(String name);
@Override
QueryImplementor getNamedQuery(String queryName);
@Override
NativeQueryImplementor getNamedSQLQuery(String name);
@Override
<T> QueryImplementor<T> createQuery(CriteriaQuery<T> criteriaQuery);
@Override
QueryImplementor createQuery(CriteriaUpdate updateQuery);
@Override
QueryImplementor createQuery(CriteriaDelete deleteQuery);
{@inheritDoc}
Deprecated: (since 5.2) - see deprecation note on super Returns: The typed query
/**
* {@inheritDoc}
*
* @deprecated (since 5.2) - see deprecation note on super
*
* @return The typed query
*/
@Deprecated
@Override
<T> QueryImplementor<T> createQuery(
String jpaqlString,
Class<T> resultClass,
Selection selection,
QueryOptions queryOptions);
Deprecated: OperationalContext should cover this overload I believe; Gail?
/**
* @deprecated OperationalContext should cover this overload I believe; Gail?
*/
@Deprecated
void merge(String entityName, Object object, Map copiedAlready) throws HibernateException;
Deprecated: OperationalContext should cover this overload I believe; Gail?
/**
* @deprecated OperationalContext should cover this overload I believe; Gail?
*/
@Deprecated
void persist(String entityName, Object object, Map createdAlready) throws HibernateException;
Deprecated: OperationalContext should cover this overload I believe; Gail?
/**
* @deprecated OperationalContext should cover this overload I believe; Gail?
*/
@Deprecated
void persistOnFlush(String entityName, Object object, Map copiedAlready);
Deprecated: OperationalContext should cover this overload I believe; Gail?
/**
* @deprecated OperationalContext should cover this overload I believe; Gail?
*/
@Deprecated
void refresh(String entityName, Object object, Map refreshedAlready) throws HibernateException;
Deprecated: OperationalContext should cover this overload I believe; Gail?
/**
* @deprecated OperationalContext should cover this overload I believe; Gail?
*/
@Deprecated
void delete(String entityName, Object child, boolean isCascadeDeleteEnabled, Set transientEntities);
Deprecated: OperationalContext should cover this overload I believe; Gail?
/**
* @deprecated OperationalContext should cover this overload I believe; Gail?
*/
@Deprecated
void removeOrphanBeforeUpdates(String entityName, Object child);
}