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
- L Low Code là gì? Hướng đi nào cho Low Code 2023
- C ChatGPT liệu có làm lập trình viên mất việc? – Phần 1
- F Facebook giới thiệu LLaMA tạo siêu AI cạnh tranh với ChatGPT
- B Blockchain developer là gì? Giải ngố những hiểu lầm
- D Digital Twins – xu hướng công nghệ cho ngành IoT
- C Chức danh Senior, Developer là gì? Khác gì với coder nhỉ!
- C Công nghệ Blockchain là gì? Tiềm năng & ứng dụng thực tế
- P Phiên bản LTS là gì? Khi nào nên sử dụng phiên bản LTS
- C Chat GPT là gì? Những điều cần biết về Chat GPT
- E Embedded Developer là gì? Cần học gì để trở thành Embedded Developer