Hibernate - 映射类型

当您准备一个 Hibernate 映射文档时,您会发现您将 Java 数据类型映射到 RDBMS 数据类型。 映射文件中声明和使用的 types 不是 Java 数据类型; 它们也不是 SQL 数据库类型。 这些类型称为Hibernate 映射类型,可以从Java 转换为SQL 数据类型,反之亦然。

本章列出了所有基本的、日期和时间、大对象以及各种其他内置映射类型。


原始类型

映射类型 Java 类型 ANSI SQL 类型
integer int 或 java.lang.Integer INTEGER
long long 或 java.lang.Long BIGINT
short short 或 java.lang.Short SMALLINT
float float 或 java.lang.Float FLOAT
double double 或 java.lang.Double DOUBLE
big_decimal java.math.BigDecimal NUMERIC
character java.lang.String CHAR(1)
string java.lang.String VARCHAR
byte byte 或 java.lang.Byte TINYINT
boolean boolean 或 java.lang.Boolean BIT
yes/no boolean 或 java.lang.Boolean CHAR(1) ('Y' or 'N')
true/false boolean 或 java.lang.Boolean CHAR(1) ('T' or 'F')

日期和时间类型

映射类型 Java 类型 ANSI SQL 类型
date java.util.Date 或 java.sql.Date DATE
time java.util.Date 或 java.sql.Time TIME
timestamp java.util.Date 或 java.sql.Timestamp TIMESTAMP
calendar java.util.Calendar TIMESTAMP
calendar_date java.util.Calendar DATE

二进制和大对象类型

映射类型 Java 类型 ANSI SQL 类型
binary byte[] VARBINARY (或 BLOB)
text java.lang.String CLOB
serializable 任何实现 java.io.Serializable 的 Java 类 VARBINARY (or BLOB)
clob java.sql.Clob CLOB
blob java.sql.Blob BLOB

JDK 相关类型

映射类型 Java 类型 ANSI SQL 类型
class java.lang.Class VARCHAR
locale java.util.Locale VARCHAR
timezone java.util.TimeZone VARCHAR
currency java.util.Currency VARCHAR