↓ 跳过正文

Hibernate - Mapping Types

正能量 1 分钟阅读 更新于 2026-10-18

说明 Hibernate 映射类型表应怎样用于 Java 属性与数据库列之间的类型检查。

Java 编程:原站配图。

当您准备Hibernate映射文件中,我们已经看到,映射Java数据类型到关系型数据库的数据类型。声明并在映射文件中使用的类型不是Java数据类型;同时也不是SQL数据库的数据类型。这些类型就是所谓的Hibernate映射类型,它可以从Java转换到SQL数据类型,反之亦然。本章列出了所有的基础上,日期和时间,大对象,以及其他各种内置的映射类型。

Primitive types:
#

Mapping typeJava typeANSI SQL Type
integerint or java.lang.IntegerINTEGER
longlong or java.lang.LongBIGINT
shortshort or java.lang.ShortSMALLINT
floatfloat or java.lang.FloatFLOAT
doubledouble or java.lang.DoubleDOUBLE
big_decimaljava.math.BigDecimalNUMERIC
characterjava.lang.StringCHAR(1)
stringjava.lang.StringVARCHAR
bytebyte or java.lang.ByteTINYINT
booleanboolean or java.lang.BooleanBIT
yes/noboolean or java.lang.BooleanCHAR(1) ('Y' or 'N')
true/falseboolean or java.lang.BooleanCHAR(1) ('T' or 'F')

Date and time types:
#

Mapping typeJava typeANSI SQL Type
datejava.util.Date or java.sql.DateDATE
timejava.util.Date or java.sql.TimeTIME
timestampjava.util.Date or java.sql.TimestampTIMESTAMP
calendarjava.util.CalendarTIMESTAMP
calendar_datejava.util.CalendarDATE

Binary and large object types:
#

Mapping typeJava typeANSI SQL Type
binarybyte[]VARBINARY (or BLOB)
textjava.lang.StringCLOB
serializableany Java class that implements java.io.SerializableVARBINARY (or BLOB)
clobjava.sql.ClobCLOB
blobjava.sql.BlobBLOB

JDK-related types:#

Mapping typeJava typeANSI SQL Type
classjava.lang.ClassVARCHAR
localejava.util.LocaleVARCHAR
timezonejava.util.TimeZoneVARCHAR
currencyjava.util.CurrencyVARCHAR

补充阅读
#

说明 Hibernate 映射类型表应怎样用于 Java 属性与数据库列之间的类型检查。

如何理解与使用
#

表中的名称属于 Hibernate 的映射层,不能直接等同于 Java 类名或任意数据库的实际列类型;还应考虑所用方言和框架版本。

验证与边界
#

对日期、精度、空值和大字段,分别检查实体声明、生成或已有表结构,以及读写往返结果;历史映射表不应直接替代当前版本文档。