|
From: Keenan R. (JIRA) <no...@at...> - 2006-03-14 09:43:37
|
SchemaValidator Complains about Oracle Date Columns
---------------------------------------------------
Key: HHH-1566
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-1566
Project: Hibernate3
Type: Bug
Versions: 3.1.1
Environment: Hibernate 3.1.1, Annotations 3.1B8, EntityManager 3.1B6, Oracle 10g
Reporter: Keenan Ross
In the EJB3 Persistence forum, http://forum.hibernate.org/viewtopic.php?t=956307#2295709, Emmanuel suggested submit a bug report for this issue:
The SchemaValidator objects to a Oracle column declared with the DATE datatype and annotated as TemporalType.TIMESTAMP.
The SchemaValidator complains:
javax.persistence.PersistenceException: org.hibernate.HibernateException: Wrong column type: LAST_UPDATE, expected: timestamp
on a persistent property declared as
@Column(name="LAST_UPDATE", unique=false, nullable=false, insertable=true, updatable=true, length=7)
@Temporal(TemporalType.TIMESTAMP)
public Date getLastUpdate() {
return this.lastUpdate;
}
with DDL
CREATE TABLE plate (..., last_update DATE NOT NULL, ...)
In Oracle, the DATE datatype contains both date and time information, much like java.lang.Date, so a TIMESTAMP temporal type should be a valid mapping. Indeed it is the only valid mapping, because while attempts to use TemporalType.DATE or TemporalType.TIME in the above example pass the SchemaValidator, they yeild Java Dates that contain only the date or time portions, respectively.
From a brief review of the Hibernate code, it seems that each Dialect maps to an appropriate type, potentially out of several, while the validator thinks that is the only valid mapping.
--keenan
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
|