当编写Hibernate映射文件,映射的Java数据类型到关系型数据库的数据类型。声明及在映射文件中使用的类型不是Java的数据类型,它们不是SQL数据库的数据类型。这些类型就是所谓的Hibernate映射类型,它可以从Java转换到SQL数据类型,反之亦然。
本章列出了所有的基本,日期和时间,大对象,以及其他各种内置映射类型。
基本类型:
映射类型 | Java 类型 | ANSI SQL 类型 |
integer | int or java.lang.Integer | INTEGER |
long | long or java.lang.Long | BIGINT |
short | short or java.lang.Short | SMALLINT |
float | float or java.lang.Float | FLOAT |
double | double or java.lang.Double | DOUBLE |
big_decimal | java.math.BigDecimal | NUMERIC |
character | java.lang.String | CHAR(1) |
string | java.lang.String | VARCHAR |
byte | byte or java.lang.Byte | TINYINT |
boolean | boolean or java.lang.Boolean | BIT |
yes/no | boolean or java.lang.Boolean | CHAR(1) ('Y' or 'N') |
true/false | boolean or java.lang.Boolean | CHAR(1) ('T' or 'F') |
Date 和time 类型:
Mapping 类型 | Java 类型 | ANSI SQL 类型 |
date | java.util.Date or java.sql.Date | DATE |
time | java.util.Date or java.sql.Time | TIME |
timestamp | java.util.Date or java.sql.Timestamp | TIMESTAMP |
calendar | java.util.Calendar | TIMESTAMP |
calendar_date | java.util.Calendar | DATE |
二进制大对象类型:
Mapping 类型 | Java 类型 | ANSI SQL 类型 |
binary | byte[] | VARBINARY (or BLOB) |
text | java.lang.String | CLOB |
serializable | any Java class that implements java.io.Serializable | VARBINARY (or BLOB) |
clob | java.sql.Clob | CLOB |
blob | java.sql.Blob | BLOB |
JDK-related 类型:
Mapping 类型 | Java 类型 | ANSI SQL 类型 |
class | java.lang.Class | VARCHAR |
locale | java.util.Locale | VARCHAR |
timezone | java.util.TimeZone | VARCHAR |
currency | java.util.Currency | VARCHAR |