add some cross-refs to the Javadoc
so we can easily find where these settings ultimately come from
This commit is contained in:
parent
f58e450ea8
commit
cf9578a9e0
|
@ -11,7 +11,7 @@ import java.sql.PreparedStatement;
|
|||
import java.sql.SQLException;
|
||||
|
||||
/**
|
||||
* Contract for binding values to a {@link PreparedStatement}.
|
||||
* Contract for binding values to a JDBC {@link PreparedStatement}.
|
||||
*
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
|
|
|
@ -11,8 +11,8 @@ import java.sql.ResultSet;
|
|||
import java.sql.SQLException;
|
||||
|
||||
/**
|
||||
* Contract for extracting value via JDBC from {@link ResultSet} or as output
|
||||
* param from {@link CallableStatement}.
|
||||
* Contract for extracting values from a JDBC {@link ResultSet} or
|
||||
* from output the parameters of a {@link CallableStatement}.
|
||||
*
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
|
|
|
@ -6,57 +6,82 @@
|
|||
*/
|
||||
package org.hibernate.type.descriptor;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.util.Calendar;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import org.hibernate.engine.jdbc.LobCreator;
|
||||
import org.hibernate.engine.spi.SessionFactoryImplementor;
|
||||
import org.hibernate.engine.spi.SharedSessionContractImplementor;
|
||||
|
||||
import java.util.TimeZone;
|
||||
|
||||
/**
|
||||
* Gives binding (nullSafeSet) and extracting (nullSafeGet) code access to options.
|
||||
* Options for {@linkplain ValueBinder#bind(java.sql.PreparedStatement, Object, int, WrapperOptions)
|
||||
* binding values to} and {@linkplain ValueExtractor#extract(java.sql.ResultSet, int, WrapperOptions)
|
||||
* extracting values from} JDBC prepared statements and result sets.
|
||||
*
|
||||
* @author Steve Ebersole
|
||||
*
|
||||
* @see ValueBinder
|
||||
* @see ValueExtractor
|
||||
*/
|
||||
public interface WrapperOptions {
|
||||
|
||||
/**
|
||||
* Access to the current Session
|
||||
* Access to the current session.
|
||||
*/
|
||||
SharedSessionContractImplementor getSession();
|
||||
|
||||
/**
|
||||
* Access to the current Session
|
||||
* Access to the current session factory.
|
||||
*/
|
||||
SessionFactoryImplementor getSessionFactory();
|
||||
|
||||
/**
|
||||
* Should streams be used for binding LOB values.
|
||||
* Determines whether streams should be used for binding LOB values.
|
||||
*
|
||||
* @return {@code true}/{@code false}
|
||||
*
|
||||
* @see org.hibernate.dialect.Dialect#useInputStreamToInsertBlob()
|
||||
*/
|
||||
boolean useStreamForLobBinding();
|
||||
|
||||
/**
|
||||
* Get the JDBC {@link java.sql.Types type code} used to bind a null boolean value
|
||||
* The JDBC {@link java.sql.Types type code} used to bind a null boolean value.
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#PREFERRED_BOOLEAN_JDBC_TYPE
|
||||
* @see org.hibernate.dialect.Dialect#getPreferredSqlTypeCodeForBoolean()
|
||||
*/
|
||||
int getPreferredSqlTypeCodeForBoolean();
|
||||
|
||||
/**
|
||||
* Obtain access to the {@link LobCreator}
|
||||
* Obtain access to the {@link LobCreator}.
|
||||
*
|
||||
* @return The LOB creator
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#NON_CONTEXTUAL_LOB_CREATION
|
||||
* @see org.hibernate.dialect.Dialect#getDefaultNonContextualLobCreation()
|
||||
*/
|
||||
LobCreator getLobCreator();
|
||||
|
||||
/**
|
||||
* The JDBC {@link TimeZone} used when persisting Timestamp and DateTime properties into the database.
|
||||
* This setting is used when storing timestamps using the {@link java.sql.PreparedStatement#setTimestamp(int, Timestamp, Calendar)} method.
|
||||
* The JDBC {@link TimeZone} used when writing a value of type {@link java.sql.Time}
|
||||
* or {@link java.sql.Timestamp} to a JDBC {@link java.sql.PreparedStatement}, or
|
||||
* when reading from a JDBC {@link java.sql.ResultSet}.
|
||||
* <ul>
|
||||
* <li>When {@code getJdbcTimeZone()} is null, the method
|
||||
* {@link java.sql.PreparedStatement#setTimestamp(int, java.sql.Timestamp)} is
|
||||
* called to write a timestamp, and
|
||||
* {@link java.sql.ResultSet#getTimestamp(int)} is called to read a timestamp.
|
||||
* <li>But when not null, the method
|
||||
* {@link java.sql.PreparedStatement#setTimestamp(int, java.sql.Timestamp, java.util.Calendar)}
|
||||
* is called to write a timestamp, and
|
||||
* {@link java.sql.ResultSet#getTimestamp(int, java.util.Calendar)} is called to
|
||||
* read a timestamp.
|
||||
</ul>
|
||||
* Thus, the storage {@link TimeZone} can differ from the default JVM TimeZone given
|
||||
* by {@link TimeZone#getDefault()}.
|
||||
*
|
||||
* This way, the storage {@link TimeZone} can differ from the default JVM TimeZone given by {@link TimeZone#getDefault()}.
|
||||
* @return the JDBC {@link TimeZone}, or null if no JDBC timezone was explicitly set
|
||||
*
|
||||
* @return JDBC {@link TimeZone}
|
||||
* @see org.hibernate.cfg.AvailableSettings#JDBC_TIME_ZONE
|
||||
*/
|
||||
TimeZone getJdbcTimeZone();
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ import org.hibernate.type.descriptor.jdbc.spi.JdbcTypeRegistry;
|
|||
import org.hibernate.type.spi.TypeConfiguration;
|
||||
|
||||
/**
|
||||
* A parameter object that helps in determine the {@link java.sql.Types SQL/JDBC type}
|
||||
* A parameter object that helps determine the {@link java.sql.Types SQL/JDBC type}
|
||||
* recommended by the JDBC spec (explicitly or implicitly) for a given Java type.
|
||||
*
|
||||
* @see BasicJavaType#getRecommendedJdbcType
|
||||
|
@ -67,6 +67,9 @@ public interface JdbcTypeIndicators {
|
|||
* When mapping a boolean type to the database what is the preferred SQL type code to use?
|
||||
* <p/>
|
||||
* Returns a key into the {@link JdbcTypeRegistry}.
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#PREFERRED_BOOLEAN_JDBC_TYPE
|
||||
* @see org.hibernate.dialect.Dialect#getPreferredSqlTypeCodeForBoolean()
|
||||
*/
|
||||
default int getPreferredSqlTypeCodeForBoolean() {
|
||||
return getCurrentBaseSqlTypeIndicators().getPreferredSqlTypeCodeForBoolean();
|
||||
|
@ -76,6 +79,8 @@ public interface JdbcTypeIndicators {
|
|||
* When mapping a duration type to the database what is the preferred SQL type code to use?
|
||||
* <p/>
|
||||
* Returns a key into the {@link JdbcTypeRegistry}.
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#PREFERRED_DURATION_JDBC_TYPE
|
||||
*/
|
||||
default int getPreferredSqlTypeCodeForDuration() {
|
||||
return getCurrentBaseSqlTypeIndicators().getPreferredSqlTypeCodeForDuration();
|
||||
|
@ -85,6 +90,8 @@ public interface JdbcTypeIndicators {
|
|||
* When mapping an uuid type to the database what is the preferred SQL type code to use?
|
||||
* <p/>
|
||||
* Returns a key into the {@link JdbcTypeRegistry}.
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#PREFERRED_UUID_JDBC_TYPE
|
||||
*/
|
||||
default int getPreferredSqlTypeCodeForUuid() {
|
||||
return getCurrentBaseSqlTypeIndicators().getPreferredSqlTypeCodeForUuid();
|
||||
|
@ -94,6 +101,8 @@ public interface JdbcTypeIndicators {
|
|||
* When mapping an instant type to the database what is the preferred SQL type code to use?
|
||||
* <p/>
|
||||
* Returns a key into the {@link JdbcTypeRegistry}.
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#PREFERRED_INSTANT_JDBC_TYPE
|
||||
*/
|
||||
default int getPreferredSqlTypeCodeForInstant() {
|
||||
return getCurrentBaseSqlTypeIndicators().getPreferredSqlTypeCodeForInstant();
|
||||
|
@ -104,6 +113,8 @@ public interface JdbcTypeIndicators {
|
|||
* <p/>
|
||||
* Returns a key into the {@link JdbcTypeRegistry}.
|
||||
*
|
||||
* @see org.hibernate.dialect.Dialect#getPreferredSqlTypeCodeForArray()
|
||||
*
|
||||
* @since 6.1
|
||||
*/
|
||||
default int getPreferredSqlTypeCodeForArray() {
|
||||
|
@ -137,6 +148,9 @@ public interface JdbcTypeIndicators {
|
|||
|
||||
/**
|
||||
* The default {@link TimeZoneStorageStrategy}.
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#TIMEZONE_DEFAULT_STORAGE
|
||||
* @see org.hibernate.dialect.Dialect#getTimeZoneSupport()
|
||||
*/
|
||||
default TimeZoneStorageStrategy getDefaultTimeZoneStorageStrategy() {
|
||||
return getCurrentBaseSqlTypeIndicators().getDefaultTimeZoneStorageStrategy();
|
||||
|
|
Loading…
Reference in New Issue