improve some JDBC related Javadocs (#9195)
improve some JDBC related Javadocs Co-authored-by: nathan.xu <nathan.xu@procor.com>
This commit is contained in:
parent
b33890b38b
commit
019cbf5ed9
|
@ -7,7 +7,7 @@ package org.hibernate.engine.jdbc;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Marker interface for non-contextually created {@link java.sql.Blob} instances..
|
* Marker interface for non-contextually created {@link java.sql.Blob} instances.
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
package org.hibernate.engine.jdbc;
|
package org.hibernate.engine.jdbc;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Marker interface for non-contextually created {@link java.sql.Clob} instances..
|
* Marker interface for non-contextually created {@link java.sql.Clob} instances.
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -5,9 +5,9 @@
|
||||||
package org.hibernate.engine.jdbc;
|
package org.hibernate.engine.jdbc;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Marker interface for non-contextually created java.sql.NClob instances..
|
* Marker interface for non-contextually created {@link java.sql.NClob} instances.
|
||||||
* <p>
|
* <p>
|
||||||
* java.sql.NClob is a new type introduced in JDK 1.6 (JDBC 4)
|
* {@link java.sql.NClob} is a new type introduced in JDK 1.6 (JDBC 4)
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -9,11 +9,11 @@ import org.hibernate.Length;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Models size restrictions/requirements on a column's datatype.
|
* Models size restrictions/requirements on a column's data type.
|
||||||
*
|
*
|
||||||
* @implNote Since we do not necessarily know the datatype up front, and therefore do not necessarily know
|
* @implNote Since we do not necessarily know the data type up front, and therefore do not necessarily know
|
||||||
* whether length or precision/scale sizing is needed, we simply account for both here. Additionally, LOB
|
* whether length or precision/scale sizing is needed, we simply account for both here. Additionally, LOB
|
||||||
* sizes, by standard, are allowed a "multiplier", {@code K} (Kb), {@code M} (Mb) or {@code G} (Gb).
|
* sizes, by standard, are allowed a "multiplier": {@code K} (Kb), {@code M} (Mb), or {@code G} (Gb).
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -8,7 +8,7 @@ import org.hibernate.engine.jdbc.batch.spi.BatchKey;
|
||||||
import org.hibernate.jdbc.Expectations;
|
import org.hibernate.jdbc.Expectations;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Normal implementation of BatchKey
|
* Normal implementation of {@link BatchKey}
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -20,7 +20,7 @@ import static org.hibernate.engine.jdbc.connections.internal.ConnectionProviderI
|
||||||
import static org.hibernate.internal.util.StringHelper.nullIfEmpty;
|
import static org.hibernate.internal.util.StringHelper.nullIfEmpty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Standard implementation of DatabaseConnectionInfo
|
* Standard implementation of {@link DatabaseConnectionInfo}
|
||||||
*
|
*
|
||||||
* @author Jan Schatteman
|
* @author Jan Schatteman
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -11,7 +11,8 @@ import javax.sql.DataSource;
|
||||||
import org.hibernate.service.UnknownUnwrapTypeException;
|
import org.hibernate.service.UnknownUnwrapTypeException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Basic support for implementations of {@link MultiTenantConnectionProvider} based on DataSources.
|
* Basic support for implementations of {@link MultiTenantConnectionProvider} based on {@link DataSource}s.
|
||||||
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
public abstract class AbstractDataSourceBasedMultiTenantConnectionProviderImpl<T> implements MultiTenantConnectionProvider<T> {
|
public abstract class AbstractDataSourceBasedMultiTenantConnectionProviderImpl<T> implements MultiTenantConnectionProvider<T> {
|
||||||
|
|
|
@ -11,7 +11,7 @@ import org.hibernate.service.UnknownUnwrapTypeException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Basic support for {@link MultiTenantConnectionProvider} implementations using
|
* Basic support for {@link MultiTenantConnectionProvider} implementations using
|
||||||
* individual {@link ConnectionProvider} instances per tenant behind the scenes.
|
* an individual {@link ConnectionProvider} instance per tenant behind the scenes.
|
||||||
* <p>
|
* <p>
|
||||||
* This class is meant to be subclassed to implement application-specific
|
* This class is meant to be subclassed to implement application-specific
|
||||||
* requirements.
|
* requirements.
|
||||||
|
|
|
@ -19,7 +19,7 @@ import org.hibernate.service.spi.Wrapped;
|
||||||
* A {@code ConnectionProvider} may be selected using the configuration property
|
* A {@code ConnectionProvider} may be selected using the configuration property
|
||||||
* {@value org.hibernate.cfg.AvailableSettings#CONNECTION_PROVIDER}.
|
* {@value org.hibernate.cfg.AvailableSettings#CONNECTION_PROVIDER}.
|
||||||
* <p>
|
* <p>
|
||||||
* It's not usual for an applications to implement its on {@code ConnectionProvider}.
|
* It's not usual for an application to implement its own {@code ConnectionProvider}.
|
||||||
* Instead, the Hibernate project provides pre-built implementations for a variety of
|
* Instead, the Hibernate project provides pre-built implementations for a variety of
|
||||||
* connection pools as add-on modules.
|
* connection pools as add-on modules.
|
||||||
* <p>
|
* <p>
|
||||||
|
|
|
@ -12,7 +12,7 @@ import org.hibernate.engine.jdbc.spi.JdbcServices;
|
||||||
import org.hibernate.service.spi.ServiceRegistryImplementor;
|
import org.hibernate.service.spi.ServiceRegistryImplementor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Service initiator for RefCursorSupport service
|
* Service initiator for the {@link RefCursorSupport} service
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -17,7 +17,7 @@ import org.hibernate.engine.jdbc.spi.JdbcServices;
|
||||||
import org.jboss.logging.Logger;
|
import org.jboss.logging.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Standard implementation of RefCursorSupport
|
* Standard implementation of {@link RefCursorSupport}
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -10,7 +10,7 @@ import org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo;
|
||||||
import org.hibernate.engine.jdbc.dialect.spi.DialectResolver;
|
import org.hibernate.engine.jdbc.dialect.spi.DialectResolver;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The standard DialectResolver implementation
|
* The standard {@link DialectResolver} implementation
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -8,9 +8,9 @@ import java.sql.DatabaseMetaData;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An implementation of DialectResolutionInfo that delegates calls to a wrapped {@link DatabaseMetaData}.
|
* An implementation of {@link DialectResolutionInfo} that delegates calls to a wrapped {@link DatabaseMetaData}.
|
||||||
* <p>
|
* <p>
|
||||||
* All {@link SQLException}s resulting from calls on the DatabaseMetaData are converted to the Hibernate
|
* All {@link SQLException}s resulting from calls on the {@link DatabaseMetaData} are converted to the Hibernate
|
||||||
* {@link org.hibernate.JDBCException} hierarchy.
|
* {@link org.hibernate.JDBCException} hierarchy.
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
|
|
|
@ -11,7 +11,7 @@ import org.hibernate.dialect.Dialect;
|
||||||
import org.hibernate.service.Service;
|
import org.hibernate.service.Service;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A factory for generating Dialect instances.
|
* A factory for generating {@link Dialect} instances.
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
package org.hibernate.engine.jdbc.dialect.spi;
|
package org.hibernate.engine.jdbc.dialect.spi;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contract for the source of DialectResolutionInfo.
|
* Contract for the source of {@link DialectResolutionInfo}.
|
||||||
*/
|
*/
|
||||||
@FunctionalInterface
|
@FunctionalInterface
|
||||||
public interface DialectResolutionInfoSource {
|
public interface DialectResolutionInfoSource {
|
||||||
|
|
|
@ -22,9 +22,9 @@ import org.hibernate.engine.jdbc.proxy.NClobProxy;
|
||||||
* {@link LobCreator} which can use {@link Connection#createBlob} and {@link Connection#createClob},
|
* {@link LobCreator} which can use {@link Connection#createBlob} and {@link Connection#createClob},
|
||||||
* but {@link java.sql.NClob} references are created locally.
|
* but {@link java.sql.NClob} references are created locally.
|
||||||
*
|
*
|
||||||
* @see NClobProxy
|
|
||||||
*
|
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
|
*
|
||||||
|
* @see NClobProxy
|
||||||
*/
|
*/
|
||||||
public class BlobAndClobCreator extends AbstractLobCreator implements LobCreator {
|
public class BlobAndClobCreator extends AbstractLobCreator implements LobCreator {
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ import org.hibernate.tool.schema.extract.spi.SequenceInformation;
|
||||||
import static java.util.stream.StreamSupport.stream;
|
import static java.util.stream.StreamSupport.stream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Standard implementation of ExtractedDatabaseMetaData
|
* Standard implementation of {@link ExtractedDatabaseMetaData}
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -17,7 +17,7 @@ import java.sql.NClob;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@link LobCreator} implementation using non-contextual or local creation, meaning that we generate the LOB
|
* {@link LobCreator} implementation using non-contextual or local creation, meaning that we generate the LOB
|
||||||
* references ourselves as opposed to delegating to the JDBC {@link java.sql.Connection}.
|
* references ourselves as opposed to delegating to the {@linkplain java.sql.Connection JDBC connection}.
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
* @author Gail Badner
|
* @author Gail Badner
|
||||||
|
|
|
@ -16,7 +16,7 @@ import org.hibernate.engine.jdbc.env.spi.NameQualifierSupport;
|
||||||
import org.hibernate.engine.jdbc.env.spi.QualifiedObjectNameFormatter;
|
import org.hibernate.engine.jdbc.env.spi.QualifiedObjectNameFormatter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Standard implementation of QualifiedObjectNameFormatter which uses information reported
|
* Standard implementation of {@link QualifiedObjectNameFormatter} which uses information reported
|
||||||
* by {@link DatabaseMetaData} to render qualified names.
|
* by {@link DatabaseMetaData} to render qualified names.
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
package org.hibernate.engine.jdbc.env.spi;
|
package org.hibernate.engine.jdbc.env.spi;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An enumeration of the way DatabaseMetaData might store and return identifiers
|
* An enumeration of the way {@link java.sql.DatabaseMetaData} might store and return identifiers
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -20,8 +20,8 @@ import static java.util.Collections.addAll;
|
||||||
import static org.hibernate.internal.util.StringHelper.splitAtCommas;
|
import static org.hibernate.internal.util.StringHelper.splitAtCommas;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builder for IdentifierHelper instances. Mainly here to allow progressive
|
* Builder for {@link IdentifierHelper} instances. Mainly here to allow progressive
|
||||||
* building of the immutable (after instantiation) IdentifierHelper.
|
* building of the immutable (after instantiation) {@link IdentifierHelper}.
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -20,7 +20,7 @@ import org.hibernate.resource.jdbc.spi.JdbcEventHandler;
|
||||||
import org.hibernate.resource.jdbc.spi.JdbcSessionContext;
|
import org.hibernate.resource.jdbc.spi.JdbcSessionContext;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Standard implementation of the ResultSetReturn contract
|
* Standard implementation of the {@link ResultSetReturn} contract
|
||||||
*
|
*
|
||||||
* @author Brett Meyer
|
* @author Brett Meyer
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -24,7 +24,7 @@ import static org.hibernate.engine.jdbc.mutation.internal.ModelMutationHelper.ch
|
||||||
import static org.hibernate.sql.model.ModelMutationLogging.MODEL_MUTATION_LOGGER;
|
import static org.hibernate.sql.model.ModelMutationLogging.MODEL_MUTATION_LOGGER;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base support for MutationExecutor implementations
|
* Base support for {@link MutationExecutor} implementations
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -11,7 +11,7 @@ import org.hibernate.sql.model.ast.ColumnValueParameter;
|
||||||
import org.hibernate.sql.model.jdbc.JdbcValueDescriptor;
|
import org.hibernate.sql.model.jdbc.JdbcValueDescriptor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Standard JdbcValueDescriptor implementation
|
* Standard {@link JdbcValueDescriptor} implementation
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -36,7 +36,7 @@ import org.hibernate.sql.model.jdbc.JdbcValueDescriptor;
|
||||||
import static org.hibernate.internal.util.collections.CollectionHelper.isNotEmpty;
|
import static org.hibernate.internal.util.collections.CollectionHelper.isNotEmpty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Standard MutationExecutor implementation
|
* Standard {@link org.hibernate.engine.jdbc.mutation.MutationExecutor}
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -8,8 +8,8 @@ import org.hibernate.engine.jdbc.batch.spi.BatchKey;
|
||||||
import org.hibernate.engine.jdbc.mutation.spi.BatchKeyAccess;
|
import org.hibernate.engine.jdbc.mutation.spi.BatchKeyAccess;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A form of BatchKeyAccess for cases where batching is not wanted, which is
|
* A form of {@link BatchKeyAccess} for cases where batching is not wanted, which is
|
||||||
* signified by a BatchKey of {@code null}
|
* signified by a {@link BatchKey} of {@code null}
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -17,7 +17,7 @@ import org.hibernate.sql.model.PreparableMutationOperation;
|
||||||
import org.hibernate.sql.model.TableMapping;
|
import org.hibernate.sql.model.TableMapping;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Describes a particular PreparedStatement within a {@linkplain PreparedStatementGroup group}
|
* Describes a particular {@link PreparedStatement} within a {@linkplain PreparedStatementGroup group}
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -15,7 +15,7 @@ import org.hibernate.sql.model.PreparableMutationOperation;
|
||||||
import org.hibernate.sql.model.TableMapping;
|
import org.hibernate.sql.model.TableMapping;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PreparedStatementGroup implementation for cases where we
|
* {@link PreparedStatementGroup} implementation for cases where we
|
||||||
* have just a single operation
|
* have just a single operation
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
|
|
|
@ -19,7 +19,7 @@ import org.hibernate.sql.model.PreparableMutationOperation;
|
||||||
import org.hibernate.sql.model.SelfExecutingUpdateOperation;
|
import org.hibernate.sql.model.SelfExecutingUpdateOperation;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Standard MutationExecutorService implementation
|
* Standard {@link MutationExecutorService} implementation
|
||||||
*
|
*
|
||||||
* @see MutationExecutorServiceInitiator
|
* @see MutationExecutorServiceInitiator
|
||||||
*
|
*
|
||||||
|
|
|
@ -7,7 +7,8 @@ package org.hibernate.engine.jdbc.mutation.spi;
|
||||||
import org.hibernate.engine.jdbc.batch.spi.BatchKey;
|
import org.hibernate.engine.jdbc.batch.spi.BatchKey;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides access to a BatchKey as part of creating an {@linkplain MutationExecutorService#createExecutor executor}.
|
* Provides access to a {@link BatchKey} as part of creating an
|
||||||
|
* {@linkplain MutationExecutorService#createExecutor executor}.
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -11,7 +11,7 @@ import java.sql.Clob;
|
||||||
import java.sql.NClob;
|
import java.sql.NClob;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Manages aspects of proxying java.sql.NClobs to add serializability.
|
* Manages aspects of proxying {@link NClob}s to add serializability.
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -24,7 +24,7 @@ import org.jboss.logging.Logger;
|
||||||
import org.jboss.logging.Logger.Level;
|
import org.jboss.logging.Logger.Level;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper for handling SQLExceptions in various manners.
|
* Helper for handling {@link SQLException}s in various manners.
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -6,7 +6,7 @@ package org.hibernate.jdbc;
|
||||||
import org.hibernate.HibernateException;
|
import org.hibernate.HibernateException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Indicates that more rows were affected then we were expecting to be.
|
* Indicates that more rows were affected than we were expecting to be.
|
||||||
* Typically indicates presence of duplicate "PK" values in the
|
* Typically indicates presence of duplicate "PK" values in the
|
||||||
* given table.
|
* given table.
|
||||||
*
|
*
|
||||||
|
|
|
@ -8,6 +8,7 @@ import java.sql.Connection;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
|
||||||
import org.hibernate.TransactionException;
|
import org.hibernate.TransactionException;
|
||||||
|
import org.hibernate.resource.jdbc.LogicalConnection;
|
||||||
import org.hibernate.resource.jdbc.ResourceRegistry;
|
import org.hibernate.resource.jdbc.ResourceRegistry;
|
||||||
import org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor;
|
import org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor;
|
||||||
import org.hibernate.resource.jdbc.spi.PhysicalJdbcTransaction;
|
import org.hibernate.resource.jdbc.spi.PhysicalJdbcTransaction;
|
||||||
|
@ -16,7 +17,7 @@ import org.hibernate.resource.transaction.spi.TransactionStatus;
|
||||||
import org.jboss.logging.Logger;
|
import org.jboss.logging.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base support for LogicalConnection implementations
|
* Base support for {@link LogicalConnection} implementations
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -14,6 +14,7 @@ import org.hibernate.ResourceClosedException;
|
||||||
import org.hibernate.engine.jdbc.connections.spi.JdbcConnectionAccess;
|
import org.hibernate.engine.jdbc.connections.spi.JdbcConnectionAccess;
|
||||||
import org.hibernate.engine.jdbc.spi.JdbcServices;
|
import org.hibernate.engine.jdbc.spi.JdbcServices;
|
||||||
import org.hibernate.engine.jdbc.spi.SqlExceptionHelper;
|
import org.hibernate.engine.jdbc.spi.SqlExceptionHelper;
|
||||||
|
import org.hibernate.resource.jdbc.LogicalConnection;
|
||||||
import org.hibernate.resource.jdbc.ResourceRegistry;
|
import org.hibernate.resource.jdbc.ResourceRegistry;
|
||||||
import org.hibernate.resource.jdbc.spi.JdbcEventHandler;
|
import org.hibernate.resource.jdbc.spi.JdbcEventHandler;
|
||||||
import org.hibernate.resource.jdbc.spi.JdbcSessionContext;
|
import org.hibernate.resource.jdbc.spi.JdbcSessionContext;
|
||||||
|
@ -28,9 +29,9 @@ import static org.hibernate.ConnectionReleaseMode.ON_CLOSE;
|
||||||
import static org.hibernate.resource.jdbc.spi.PhysicalConnectionHandlingMode.DELAYED_ACQUISITION_AND_RELEASE_AFTER_TRANSACTION;
|
import static org.hibernate.resource.jdbc.spi.PhysicalConnectionHandlingMode.DELAYED_ACQUISITION_AND_RELEASE_AFTER_TRANSACTION;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a LogicalConnection where we manage obtaining and releasing the Connection as needed.
|
* Represents a {@link LogicalConnection} where we manage obtaining and releasing the {@link Connection} as needed.
|
||||||
* This implementation does not claim to be thread-safe and is not designed to be used by multiple
|
* This implementation does not claim to be thread-safe and is not designed to be used by multiple
|
||||||
* threads, yet we do apply a limited amount of care to be able to void obscure exceptions when
|
* threads, yet we do apply a limited amount of care to be able to avoid obscure exceptions when
|
||||||
* this class is used in the wrong way.
|
* this class is used in the wrong way.
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
|
|
|
@ -21,16 +21,16 @@ import org.hibernate.resource.jdbc.ResourceRegistry;
|
||||||
import org.hibernate.resource.jdbc.spi.JdbcEventHandler;
|
import org.hibernate.resource.jdbc.spi.JdbcEventHandler;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helps to track statements and resultsets which need being closed.
|
* Helps to track {@link Statement}s and {@link ResultSet}s which need to be closed.
|
||||||
* This class is not threadsafe.
|
* This class is not threadsafe.
|
||||||
* <p>
|
* <p>
|
||||||
* Note regarding performance: we had evidence that allocating Iterators
|
* Note regarding performance: we had evidence that allocating {@code Iterator}s
|
||||||
* to implement the cleanup on each element recursively was the dominant
|
* to implement the cleanup on each element recursively was the dominant
|
||||||
* resource cost, so we decided using "forEach" and lambdas in this case.
|
* resource cost, so we decided to use "for each" and lambdas in this case.
|
||||||
* However the forEach/lambda combination is able to dodge allocating
|
* However, the "for each"/lambda combination is able to dodge allocating
|
||||||
* Iterators on HashMap and ArrayList, but not on HashSet (at least on JDK8 and 11).
|
* {@code Iterator}s on {@code HashMap} and {@code ArrayList}, but not on {@code HashSet} (at least on JDK8 and 11).
|
||||||
* Therefore some types which should ideally be modelled as a Set have
|
* Therefore some types which should ideally be modelled as a {@code Set} have
|
||||||
* been implemented using HashMap.
|
* been implemented using {@code HashMap}.
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
* @author Sanne Grinovero
|
* @author Sanne Grinovero
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
*/
|
*/
|
||||||
package org.hibernate.resource.transaction.backend.jdbc.internal;
|
package org.hibernate.resource.transaction.backend.jdbc.internal;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -28,7 +29,7 @@ import static org.hibernate.internal.CoreLogging.messageLogger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An implementation of {@link TransactionCoordinator} based on managing a
|
* An implementation of {@link TransactionCoordinator} based on managing a
|
||||||
* transaction through the JDBC Connection via {@link JdbcResourceTransaction}.
|
* transaction through the JDBC {@link Connection} via {@link JdbcResourceTransaction}.
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*
|
*
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
* "data store" specific notion of a transaction. In Hibernate ORM uses this
|
* "data store" specific notion of a transaction. In Hibernate ORM uses this
|
||||||
* correlates to the JDBC notion of a transaction, which (unfortunately) is
|
* correlates to the JDBC notion of a transaction, which (unfortunately) is
|
||||||
* not modeled by an actual contract. Instead, JDBC models transaction control
|
* not modeled by an actual contract. Instead, JDBC models transaction control
|
||||||
* via its Connection contract.
|
* via its {@link java.sql.Connection} contract.
|
||||||
* <p>
|
* <p>
|
||||||
* Here we use
|
* Here we use
|
||||||
* {@link org.hibernate.resource.transaction.backend.jdbc.spi.JdbcResourceTransaction}
|
* {@link org.hibernate.resource.transaction.backend.jdbc.spi.JdbcResourceTransaction}
|
||||||
|
|
|
@ -8,7 +8,7 @@ import org.hibernate.sql.exec.spi.JdbcOperation;
|
||||||
import org.hibernate.sql.model.PreparableMutationOperation;
|
import org.hibernate.sql.model.PreparableMutationOperation;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JdbcOperation extension for model mutations stemming from
|
* {@link JdbcOperation} extension for model mutations stemming from
|
||||||
* persistence context flushes
|
* persistence context flushes
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
|
|
|
@ -13,7 +13,7 @@ import org.hibernate.sql.model.MutationType;
|
||||||
import org.hibernate.sql.model.TableMapping;
|
import org.hibernate.sql.model.TableMapping;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JdbcMutation implementation for MERGE handling
|
* {@link JdbcMutationOperation} implementation for MERGE handling
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -13,7 +13,7 @@ import org.hibernate.sql.model.MutationType;
|
||||||
import org.hibernate.sql.model.TableMapping;
|
import org.hibernate.sql.model.TableMapping;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JdbcMutation implementation for UPSERT handling
|
* {@link JdbcMutationOperation} implementation for UPSERT handling
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -18,7 +18,7 @@ import org.hibernate.type.descriptor.jdbc.NullJdbcType;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Standard JdbcValuesMappingProducerProvider implementation
|
* Standard {@link JdbcValuesMappingProducerProvider} implementation
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -21,7 +21,7 @@ import org.hibernate.type.spi.TypeConfiguration;
|
||||||
import jakarta.persistence.EnumType;
|
import jakarta.persistence.EnumType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Access to a JDBC ResultSet and information about it.
|
* Access to a JDBC {@link ResultSet} and information about it.
|
||||||
*
|
*
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue