Hibernate mapping type
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 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:
- Hibernate Batch processing
- Cho phép tùy chọn Giao diện trong Spring Web MVC framework
- Tạo database table tự động từ Hibernate Entity
Xem thêm Việc làm IT hấp dẫn trên TopDev
- B BenQ RD Series – Dòng Màn Hình Lập Trình 4k+ Đầu Tiên Trên Thế Giới
- i iOS 18 có gì mới? Có nên cập nhật iOS 18 cho iPhone của bạn?
- G Gamma AI là gì? Cách tạo slide chuyên nghiệp chỉ trong vài phút
- P Power BI là gì? Vì sao doanh nghiệp nên sử dụng PBI?
- K KICC HCMC x TOPDEV – Bước đệm nâng tầm sự nghiệp cho nhân tài IT Việt Nam
- T Trello là gì? Cách sử dụng Trello để quản lý công việc
- T TOP 10 SỰ KIỆN CÔNG NGHỆ THƯỜNG NIÊN KHÔNG NÊN BỎ LỠ
- T Tìm hiểu Laptop AI – So sánh Laptop AI với Laptop thường
- M MySQL vs MS SQL Server: Phân biệt hai RDBMS phổ biến nhất
- S SearchGPT là gì? Công cụ tìm kiếm mới có thể đánh bại Google?