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
- i iOS 17.5 Beta 1 vừa được phát hành, những thay đổi nào đáng chú ý?
- i iOS 18 khi nào ra mắt? iOS 18 sẽ không hỗ trợ máy nào?
- V Về Logging: Mắt thần của bạn trên hệ thống thực
- M Middlewares – Sự tùy biến trong ứng dụng phần mềm
- Đ Đón đầu 7 xu hướng công nghệ hàng đầu trong năm 2024
- T Thực hiện “Chuẩn Hóa CV” nhận ngay quà hấp dẫn
- M METRO.digital Vietnam culture and ways of working
- G GW2790QT – Màn hình 2K tốt nhất dành cho lập trình viên
- S So sánh AWS, Google Cloud và Azure năm 2024
- D Data Analyst là gì? Chuyện nghề của một Data Analyst