Hibernate mapping type

163

Bài viết được sự cho phép của tác giả Giang Phan

Khi tạo Entity trong Hibernate, chúng ta phải ánh xạ (mapping) các kiểu dữ liệu Java vào các kiểu dữ liệu trong database. Việc mapping này rất quan trọng, nó giúp Hibernate có thể chuyển đổi từ kiểu dữ liệu Java sang SQL và ngược lại một cách chính xác.

Trong bài này, tôi sẽ tổng hợp lại các kiểu dữ liệu tương ứng giữa Java, Hibernate và JDBC.

  Các Annotation của Hibernate
  Hibernate Cache

Các kiểu dữ liệu nguyên thủy

Mapping type Java type JDBC type Hibernate type (org.hibernate.type package)
integer int hoặc java.lang.Integer INTEGER IntegerTypes
long long hoặc java.lang.Long BIGINT LongType
short short hoặc java.lang.Short SMALLINT ShortType
float float hoặc java.lang.Float FLOAT FloatType
double double hoặc java.lang.Double DOUBLE DoubleType
big_decimal java.math.BigDecimal NUMERIC BigDecimalType
character java.lang.String CHAR(1) CharacterType
string java.lang.String VARCHAR StringType
byte byte hoặc java.lang.Byte TINYINT ByteType
boolean boolean hoặc java.lang.Boolean BIT BooleanType
yes/no boolean hoặc java.lang.Boolean CHAR(1) (‘Y’ hoặc ‘N’) YesNoType
true/false boolean hoặc java.lang.Boolean CHAR(1) (‘T’ hoặc ‘F’) TrueFalseType

Các kiểu Date Time

Mapping type Java type JDBC type Hibernate type (org.hibernate.type package)
date java.util.Date hoặc java.sql.Date DATE DateType
time java.util.Date hoặc java.sql.Time TIME TimeType
timestamp java.util.Date hoặc java.sql.Timestamp TIMESTAMP TimestampType
calendar java.util.Calendar TIMESTAMP CalendarType
calendar_date java.util.Calendar DATE CalendarDateType
calendar_time java.util.Calendar TIME CalendarTimeType
locale java.util.Locale VARCHAR LocaleType

Các kiểu Date Time trong Java 8

Mapping type Java type JDBC type Hibernate type (org.hibernate.type package)
Duration java.time.Duration BIGINT DurationType
Instant java.time.Instant TIMESTAMP InstantType
LocalDateTime java.time.LocalDateTime TIMESTAMP LocalDateTimeType
LocalDate java.time.LocalDate DATE LocalDateType
LocalTime java.time.LocalTime TIME LocalTimeType
OffsetDateTime java.time.OffsetDateTime TIMESTAMP OffsetDateTimeType
OffsetTime java.time.OffsetTime TIME OffsetTimeType
ZonedDateTime java.time.ZonedDateTime TIMESTAMP ZonedDateTimeType

Các kiểu Binary và đối tượng lớn

Mapping type Java type JDBC type Hibernate type (org.hibernate.type package)
binary byte[] VARBINARY (hoặc BLOB) BinaryType
text java.lang.String CLOB ClobType
serializable any Java class that implements java.io.Serializable VARBINARY (hoặc BLOB) SerializableType
clob java.sql.Clob CLOB ClobType
blob java.sql.Blob BLOB BlobType

Trên đây là một số mapping kiểu dữ liệu giữa Java, Hibernate và JDBC. Còn nhiều kiểu dữ liệu khác , các bạn tham khảo thêm ở link bên dưới.

Tài liệu tham khảo:

Bài viết gốc được đăng tải tại gpcoder.com

Có thể bạn quan tâm:

Xem thêm Việc làm IT hấp dẫn trên TopDev