I\'ve created a UserType (see below) to handle a situation in our mySQL database where we\'ve been saving null dates as 0000-00-00 00:00:00.
When I try and persist m
These nuances are quite well discussed here: http://blog.xebia.com/2009/11/09/understanding-and-writing-hibernate-user-types/
Your problem is not with your UserType - it's with the fact that you've declared your property as not-null (using @Basic optional="false") and yet you're setting it to null.
That said, I'd be careful about returning the original value in deepCopy / assemble / disassemble methods. java.util.Date is mutable and you may be asking for trouble there.
Ready and working solution for DATE and TIME: How to map MySQL DATE '0000-00-00' & TIME '00:00:00' with Hibernate
Thanks Preston for the code and ChssPly76 for useful comments.