This is always a question – how to map temporal data in our hibernate entities – whether to use java.util.Date, java.util.Calendar or simply long. The correct answer is: neither of these. Use joda-time – the de-facto Java datetime API. Using it throughout the whole project is a no-brainer, but how to use it with hibernate – you can’t use @Temporal. Hibernate supports custom types, so there’s a solution:
The user guide is pretty clear:
@Column @Type(type="........PersistentDateTime") private DateTime fromDate;
However, there’s might be issues with these libraries when hibernate version change. For that reason you may need to extend the
PersistentDateTime class and use your own class in the @Tpe mapping.
Using joda-time throughout the whole project will save tons of headaches. So I strongly suggest the above mechanism to use joda-time in your hibernate entities as well.