[ 
https://issues.apache.org/jira/browse/OPENJPA-497?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12560661#action_12560661
 ] 

Mircea Lazar commented on OPENJPA-497:
--------------------------------------

The query works as is in other JPA providers(Reference implementation, 
Hibernate). If not for conversion, what would be the purpose of that 
TemporalType param then? The reason of this conversion is to not have the 
business code depending on java.sql but rather on java.util.Date .

Mircea

> Incorect handling of temporal parameters in queries
> ---------------------------------------------------
>
>                 Key: OPENJPA-497
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-497
>             Project: OpenJPA
>          Issue Type: Bug
>    Affects Versions: 1.0.1
>         Environment: Java 1.6
> Glassfish v2
> openjpa-1.0.1-r420667
>            Reporter: Mircea Lazar
>            Priority: Minor
>
> The entity:
> For an entity:
> @Entity
> class Log{
>       protected Timestamp startTime;
> }
> given the query
> SELECT al FROM Log al WHERE al.startTime BETWEEN :start AND :end ORDER BY 
> al.id ASC
> If the query is used as:
> query.setParameter("start", start, TemporalType.TIMESTAMP);
> query.setParameter("end", end, TemporalType.TIMESTAMP);
> where start and end are of type java.util.Date, an exception will be thrown:
> org.apache.openjpa.persistence.ArgumentException: The parameter
> "start" is of type "java.util.Date", but the declaration in the query
> is for type "java.sql.Timestamp".
>       at 
> org.apache.openjpa.persistence.QueryImpl.validateParameter(QueryImpl.java:270)
>       at 
> org.apache.openjpa.persistence.QueryImpl.validateParameters(QueryImpl.java:257)
> OpenJPA appears to ignore the temporal indications in setParameter because 
> QueryImpl is as this:
> public OpenJPAQuery setParameter(int position, Date value,
>    TemporalType type) {
>    return setParameter(position, value);
> }
> The Date parameter should be converted to Timestamp inside setParameter 
> method.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to