All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.hibernate.type.StandardBasicTypes Maven / Gradle / Ivy

There is a newer version: 7.0.0.Beta1
Show newest version
/*
 * 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 .
 */
package org.hibernate.type;

import java.io.Serializable;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.NClob;
import java.time.Duration;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.OffsetDateTime;
import java.time.OffsetTime;
import java.time.ZonedDateTime;
import java.util.Calendar;
import java.util.Currency;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
import java.util.UUID;

import org.hibernate.metamodel.model.convert.spi.BasicValueConverter;
import org.hibernate.metamodel.model.domain.BasicDomainType;
import org.hibernate.metamodel.model.domain.spi.AllowableFunctionReturnType;
import org.hibernate.metamodel.model.domain.spi.AllowableParameterType;
import org.hibernate.type.descriptor.java.MutabilityPlan;
import org.hibernate.type.descriptor.java.spi.BasicJavaDescriptor;
import org.hibernate.type.descriptor.sql.spi.SqlTypeDescriptor;
import org.hibernate.type.spi.StandardSpiBasicTypes;
import org.hibernate.type.spi.TypeConfiguration;

import org.jboss.logging.Logger;

/**
 * Centralizes access to the standard set of basic {@link Type types}.
 * 

* Type mappings can be adjusted per {@link org.hibernate.SessionFactory} (technically per * {@link TypeConfiguration}). * * @author Gavin King * @author Steve Ebersole */ @SuppressWarnings({"UnusedDeclaration", "Convert2Lambda", "unchecked", "WeakerAccess"}) public final class StandardBasicTypes { private static final Logger log = Logger.getLogger( StandardBasicTypes.class ); /** * Disallow instantiation */ private StandardBasicTypes() { } /** * The public contract for the types defined here. * * @apiNote extends all the things needed to use this in most API calls */ public interface StandardBasicType extends BasicDomainType, AllowableParameterType, AllowableFunctionReturnType { BasicJavaDescriptor getDomainJavaTypeDescriptor(); BasicJavaDescriptor getRelationalJavaTypeDescriptor(); SqlTypeDescriptor getRelationalSqlTypeDescriptor(); BasicValueConverter getValueConverter(); MutabilityPlan getMutabilityPlan(); } // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // boolean data /** * The standard Hibernate type for mapping {@link Boolean} to JDBC {@link java.sql.Types#BIT BIT}. */ public static final StandardBasicType BOOLEAN = StandardSpiBasicTypes.BOOLEAN; /** * The standard Hibernate type for mapping {@link Boolean} to JDBC {@link java.sql.Types#INTEGER INTEGER}. */ public static final StandardBasicType NUMERIC_BOOLEAN = StandardSpiBasicTypes.NUMERIC_BOOLEAN; /** * The standard Hibernate type for mapping {@link Boolean} to JDBC {@link java.sql.Types#CHAR CHAR(1)} (using 'T'/'F'). */ public static final StandardBasicType TRUE_FALSE = StandardSpiBasicTypes.TRUE_FALSE; /** * The standard Hibernate type for mapping {@link Boolean} to JDBC {@link java.sql.Types#CHAR CHAR(1)} (using 'Y'/'N'). */ public static final StandardBasicType YES_NO = StandardSpiBasicTypes.YES_NO; // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // byte/binary data /** * The standard Hibernate type for mapping {@link Byte} to JDBC {@link java.sql.Types#TINYINT TINYINT}. */ public static final StandardBasicType BYTE = StandardSpiBasicTypes.BYTE; /** * The standard Hibernate type for mapping {@code byte[]} to JDBC {@link java.sql.Types#VARBINARY VARBINARY}. */ public static final StandardBasicType BINARY = StandardSpiBasicTypes.BINARY; /** * The standard Hibernate type for mapping {@link Byte Byte[]} to JDBC {@link java.sql.Types#VARBINARY VARBINARY}. */ public static final StandardBasicType WRAPPER_BINARY = StandardSpiBasicTypes.WRAPPER_BINARY; /** * The standard Hibernate type for mapping {@code byte[]} to JDBC {@link java.sql.Types#LONGVARBINARY LONGVARBINARY}. * * @see #MATERIALIZED_BLOB */ public static final StandardBasicType IMAGE = StandardSpiBasicTypes.IMAGE; /** * The standard Hibernate type for mapping {@link java.sql.Blob} to JDBC {@link java.sql.Types#BLOB BLOB}. * * @see #MATERIALIZED_BLOB */ public static final StandardBasicType BLOB = StandardSpiBasicTypes.BLOB; /** * The standard Hibernate type for mapping {@code byte[]} to JDBC {@link java.sql.Types#BLOB BLOB}. * * @see #MATERIALIZED_BLOB * @see #IMAGE */ public static final StandardBasicType MATERIALIZED_BLOB = StandardSpiBasicTypes.MATERIALIZED_BLOB; // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // numeric data /** * The standard Hibernate type for mapping {@link Short} to JDBC {@link java.sql.Types#SMALLINT SMALLINT}. */ public static final StandardBasicType SHORT = StandardSpiBasicTypes.SHORT; /** * The standard Hibernate type for mapping {@link Integer} to JDBC {@link java.sql.Types#INTEGER INTEGER}. */ public static final StandardBasicType INTEGER = StandardSpiBasicTypes.INTEGER; /** * The standard Hibernate type for mapping {@link Long} to JDBC {@link java.sql.Types#BIGINT BIGINT}. */ public static final StandardBasicType LONG = StandardSpiBasicTypes.LONG; /** * The standard Hibernate type for mapping {@link Float} to JDBC {@link java.sql.Types#FLOAT FLOAT}. */ public static final StandardBasicType FLOAT = StandardSpiBasicTypes.FLOAT; /** * The standard Hibernate type for mapping {@link Double} to JDBC {@link java.sql.Types#DOUBLE DOUBLE}. */ public static final StandardBasicType DOUBLE = StandardSpiBasicTypes.DOUBLE; /** * The standard Hibernate type for mapping {@link java.math.BigInteger} to JDBC {@link java.sql.Types#NUMERIC NUMERIC}. */ public static final StandardBasicType BIG_INTEGER = StandardSpiBasicTypes.BIG_INTEGER; /** * The standard Hibernate type for mapping {@link java.math.BigDecimal} to JDBC {@link java.sql.Types#NUMERIC NUMERIC}. */ public static final StandardBasicType BIG_DECIMAL = StandardSpiBasicTypes.BIG_DECIMAL; // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // String / character data /** * The standard Hibernate type for mapping {@link Character} to JDBC {@link java.sql.Types#CHAR CHAR(1)}. */ public static final StandardBasicType CHARACTER = StandardSpiBasicTypes.CHARACTER; /** * The standard Hibernate type for mapping {@link Character} to JDBC {@link java.sql.Types#NCHAR NCHAR(1)}. */ public static final StandardBasicType CHARACTER_NCHAR = StandardSpiBasicTypes.CHARACTER_NCHAR; /** * The standard Hibernate type for mapping {@link String} to JDBC {@link java.sql.Types#VARCHAR VARCHAR}. */ public static final StandardBasicType STRING = StandardSpiBasicTypes.STRING; /** * The standard Hibernate type for mapping {@link String} to JDBC {@link java.sql.Types#NVARCHAR NVARCHAR}. */ public static final StandardBasicType NSTRING = StandardSpiBasicTypes.NSTRING; /** * The standard Hibernate type for mapping {@code char[]} to JDBC {@link java.sql.Types#VARCHAR VARCHAR}. */ public static final StandardBasicType CHAR_ARRAY = StandardSpiBasicTypes.CHAR_ARRAY; /** * The standard Hibernate type for mapping {@link Character Character[]} to JDBC * {@link java.sql.Types#VARCHAR VARCHAR}. */ public static final StandardBasicType CHARACTER_ARRAY = StandardSpiBasicTypes.CHARACTER_ARRAY; /** * The standard Hibernate type for mapping {@link String} to JDBC {@link java.sql.Types#LONGVARCHAR LONGVARCHAR}. *

* Similar to a {@link #MATERIALIZED_CLOB} */ public static final StandardBasicType TEXT = StandardSpiBasicTypes.TEXT; /** * The standard Hibernate type for mapping {@link String} to JDBC {@link java.sql.Types#LONGNVARCHAR LONGNVARCHAR}. *

* Similar to a {@link #MATERIALIZED_NCLOB} */ public static final StandardBasicType NTEXT = StandardSpiBasicTypes.NTEXT; /** * The standard Hibernate type for mapping {@link java.sql.Clob} to JDBC {@link java.sql.Types#CLOB CLOB}. * * @see #MATERIALIZED_CLOB */ public static final StandardBasicType CLOB = StandardSpiBasicTypes.CLOB; /** * The standard Hibernate type for mapping {@link java.sql.NClob} to JDBC {@link java.sql.Types#NCLOB NCLOB}. * * @see #MATERIALIZED_NCLOB */ public static final StandardBasicType NCLOB = StandardSpiBasicTypes.NCLOB; /** * The standard Hibernate type for mapping {@link String} to JDBC {@link java.sql.Types#CLOB CLOB}. * * @see #TEXT */ public static final StandardBasicType MATERIALIZED_CLOB = StandardSpiBasicTypes.MATERIALIZED_CLOB; /** * The standard Hibernate type for mapping {@code Byte[]} to JDBC {@link java.sql.Types#BLOB BLOB}. * * @see #MATERIALIZED_BLOB */ public static final StandardBasicType WRAPPED_MATERIALIZED_BLOB = StandardSpiBasicTypes.WRAPPED_MATERIALIZED_BLOB; /** * The standard Hibernate type for mapping {@link Character Character[]} to JDBC {@link java.sql.Types#NCLOB NCLOB} and * * @see #NCLOB * @see #CHAR_ARRAY */ public static final StandardBasicType MATERIALIZED_NCLOB_CHARACTER_ARRAY = StandardSpiBasicTypes.MATERIALIZED_NCLOB_CHARACTER_ARRAY; /** * The standard Hibernate type for mapping {@code char[]} to JDBC {@link java.sql.Types#CLOB CLOB}. * * @see #MATERIALIZED_CLOB * @see #TEXT */ public static final StandardBasicType MATERIALIZED_CLOB_CHAR_ARRAY = StandardSpiBasicTypes.MATERIALIZED_CLOB_CHAR_ARRAY; /** * The standard Hibernate type for mapping {@code Character[]} to JDBC {@link java.sql.Types#CLOB CLOB}. * * @see #MATERIALIZED_CLOB * @see #TEXT */ public static final StandardBasicType MATERIALIZED_CLOB_CHARACTER_ARRAY = StandardSpiBasicTypes.MATERIALIZED_CLOB_CHARACTER_ARRAY; /** * The standard Hibernate type for mapping {@code char[]} to JDBC {@link java.sql.Types#NCLOB NCLOB}. * * @see #MATERIALIZED_NCLOB * @see #TEXT */ public static final StandardBasicType MATERIALIZED_NCLOB_CHAR_ARRAY = StandardSpiBasicTypes.MATERIALIZED_NCLOB_CHAR_ARRAY; /** * The standard Hibernate type for mapping {@link String} to JDBC {@link java.sql.Types#NCLOB NCLOB}. * * @see #MATERIALIZED_CLOB * @see #NTEXT */ public static final StandardBasicType MATERIALIZED_NCLOB = StandardSpiBasicTypes.MATERIALIZED_NCLOB; // todo (6.0) : streaming variants here too? // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Date / time data /** * The standard Hibernate type for mapping {@link Duration} to JDBC {@link java.sql.Types#BIGINT BIGINT}. */ public static final StandardBasicType DURATION = StandardSpiBasicTypes.DURATION; /** * The standard Hibernate type for mapping {@link LocalDateTime} to JDBC {@link java.sql.Types#TIMESTAMP TIMESTAMP}. */ public static final StandardBasicType LOCAL_DATE_TIME = StandardSpiBasicTypes.LOCAL_DATE_TIME; /** * The standard Hibernate type for mapping {@link LocalDate} to JDBC {@link java.sql.Types#DATE DATE}. */ public static final StandardBasicType LOCAL_DATE = StandardSpiBasicTypes.LOCAL_DATE; /** * The standard Hibernate type for mapping {@link LocalTime} to JDBC {@link java.sql.Types#TIME TIME}. */ public static final StandardBasicType LOCAL_TIME = StandardSpiBasicTypes.LOCAL_TIME; /** * The standard Hibernate type for mapping {@link OffsetDateTime} to JDBC {@link java.sql.Types#TIMESTAMP TIMESTAMP}. */ public static final StandardBasicType OFFSET_DATE_TIME = StandardSpiBasicTypes.OFFSET_DATE_TIME; /** * The standard Hibernate type for mapping {@link OffsetTime} to JDBC {@link java.sql.Types#TIME TIME}. */ public static final StandardBasicType OFFSET_TIME = StandardSpiBasicTypes.OFFSET_TIME; /** * The standard Hibernate type for mapping {@link ZonedDateTime} to JDBC {@link java.sql.Types#TIMESTAMP TIMESTAMP}. */ public static final StandardBasicType ZONED_DATE_TIME = StandardSpiBasicTypes.ZONED_DATE_TIME; /** * The standard Hibernate type for mapping {@link java.util.Date} ({@link java.sql.Time}) to JDBC * {@link java.sql.Types#TIME TIME}. */ public static final StandardBasicType TIME = StandardSpiBasicTypes.TIME; /** * The standard Hibernate type for mapping {@link java.util.Date} ({@link java.sql.Date}) to JDBC * {@link java.sql.Types#DATE DATE}. */ public static final StandardBasicType DATE = StandardSpiBasicTypes.DATE; /** * The standard Hibernate type for mapping {@link java.util.Date} ({@link java.sql.Timestamp}) to JDBC * {@link java.sql.Types#TIMESTAMP TIMESTAMP}. */ public static final StandardBasicType TIMESTAMP = StandardSpiBasicTypes.TIMESTAMP; /** * The standard Hibernate type for mapping {@link java.util.Calendar} to JDBC * {@link java.sql.Types#TIMESTAMP TIMESTAMP}. */ public static final StandardBasicType CALENDAR = StandardSpiBasicTypes.CALENDAR; /** * The standard Hibernate type for mapping {@link java.util.Calendar} to JDBC * {@link java.sql.Types#DATE DATE}. */ public static final StandardBasicType CALENDAR_DATE = StandardSpiBasicTypes.CALENDAR_DATE; /** * The standard Hibernate type for mapping {@link java.util.Calendar} to JDBC * {@link java.sql.Types#TIME TIME}. */ public static final StandardBasicType CALENDAR_TIME = StandardSpiBasicTypes.CALENDAR_TIME; /** * The standard Hibernate type for mapping {@link Instant} to JDBC * {@link java.sql.Types#TIMESTAMP TIMESTAMP}. */ public static final StandardBasicType INSTANT = StandardSpiBasicTypes.INSTANT; // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // UUID data /** * The standard Hibernate type for mapping {@link java.util.UUID} to JDBC {@link java.sql.Types#BINARY BINARY}. */ public static final StandardBasicType UUID_BINARY = StandardSpiBasicTypes.UUID_BINARY; /** * The standard Hibernate type for mapping {@link java.util.UUID} to JDBC {@link java.sql.Types#CHAR CHAR}. */ public static final StandardBasicType UUID_CHAR = StandardSpiBasicTypes.UUID_CHAR; // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Misc data /** * The standard Hibernate type for mapping {@link Class} to JDBC {@link java.sql.Types#VARCHAR VARCHAR}. */ public static final StandardBasicType CLASS = StandardSpiBasicTypes.CLASS; /** * The standard Hibernate type for mapping {@link java.util.Currency} to JDBC {@link java.sql.Types#VARCHAR VARCHAR}. */ public static final StandardBasicType CURRENCY = StandardSpiBasicTypes.CURRENCY; /** * The standard Hibernate type for mapping {@link java.util.Locale} to JDBC {@link java.sql.Types#VARCHAR VARCHAR}. */ public static final StandardBasicType LOCALE = StandardSpiBasicTypes.LOCALE; /** * The standard Hibernate type for mapping {@link java.io.Serializable} to JDBC {@link java.sql.Types#VARBINARY VARBINARY}. */ public static final StandardBasicType SERIALIZABLE = StandardSpiBasicTypes.SERIALIZABLE; /** * The standard Hibernate type for mapping {@link java.util.TimeZone} to JDBC {@link java.sql.Types#VARCHAR VARCHAR}. */ public static final StandardBasicType TIMEZONE = StandardSpiBasicTypes.TIMEZONE; /** * The standard Hibernate type for mapping {@link java.net.URL} to JDBC {@link java.sql.Types#VARCHAR VARCHAR}. */ public static final StandardBasicType URL = StandardSpiBasicTypes.URL; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy