Hi Benjamin,

This is unwanted inconsistency. Would you open a JIRA[1] issue? If not, I will 
open one.

Maybe a DATETIME would be a better column type for MySQL.

Regards,
Milosz

[1] https://issues.apache.org/jira/browse/OPENJPA


> I think I may have uncovered a bug in the way TIMESTAMP fields are generated
> by the MappingTool.
> 
> I have a field
> 
> @Entity
> public class MyEntity {
> 
>     @Column(name = "due_date")
>     @Temporal(value = TemporalType.TIMESTAMP)
>     private Date dueDate;
> 
> In PostgresSQL, this generates a nullable TIMESTAMP column (with no
> default). No problem.
> 
> In MySQL, it generates
> 
> CREATE TABLE ... ( ..., due_date TIMESTAMP, ...)
> 
> In MySQL 5, this is a field that 1. is not nullable and 2. defaults to
> CURRENT_TIMESTAMP.
> 
> The way to have it behave as a nullable field without a default is to
> specify:
> 
> CREATE TABLE ... ( ..., due_date TIMESTAMP NULL, ...)
> 
> Even if this is not the default behavior (which in my mind it should be, or
> the Postgres one should be changed to behave the same way) the following:
> 
> 
>     @Column(name = "due_date", nullable = true)
>     @Temporal(value = TemporalType.TIMESTAMP)
>     private Date dueDate;
> 
> Should really generate the NULL constraint.
> 
> JPA mavens, what say you?
> 
> Thanks!!
> Benjamin
> 

Reply via email to