Hibernate DataTypes – Enum, Date, Time and TimeStamp

This Tutorial explains the various Hibernate Datatypes such as Enum, Temporal Types.

1. Overview

Here in this tutorial we shall see how to map a Java 5 Enumeration (enum) to a varchar column in Database and also to use different variations of the Date Type i.e. Date, Time and TimeStamp.

The ideal candidate for enum is a “STATUS” column in a Database Table and say “GENDER” Column in a USER Table. However some critics might be of the opinion that these columns should have a Foreign Key and should refer to Master Table, that is true in case we are using a JDBC in place of Hibernate. As in JDBC there is high chance of data corruption whereas in Hibernate Inserts Into table will always happen using the Entity.

Also for Date Type we might need different variations such as below:


2. Project Setup

Lets create a simple Maven project with the below pom.xml

In the above pom.xml we added dependencies for Hibernate 3.6.10, MySQL Connector 5.1.25, Javassist and SL4J for logging.

3. Database Table Creation

The above script creates a table DATA_TYPE which looks as below



4. Enum & Hibernate Entity Class and Mapping File

Lets create a Java enum Status.java for the STATUS column in the above Table.

and also  create a Hibernate Entity  Class DataType.java.

The mapping file DataType.hbm.xml would be

4. Configuring Hibernate

Now let us create the Hibernate  Configuration file hibernate.cfg.xml

5. Main Program

6. Output



Database Record

Database Record

7. Project Structure

The project after the above configuration would look like

Project Structure

Project Structure

Download Hibernate Datatypes Maven Example Project

I hope this has been useful for you and I’d like to thank you for reading. If you like this article, please leave a helpful comment and share it with your friends.

Leave a Reply

Your email address will not be published. Required fields are marked *