You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Pinaki Poddar (JIRA)" <ji...@apache.org> on 2008/08/02 16:01:44 UTC

[jira] Resolved: (OPENJPA-497) Incorect handling of temporal parameters in queries

     [ https://issues.apache.org/jira/browse/OPENJPA-497?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pinaki Poddar resolved OPENJPA-497.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: 1.3.0

> 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
>            Assignee: Pinaki Poddar
>            Priority: Minor
>             Fix For: 1.3.0
>
>         Attachments: openjpa-497.patch
>
>
> 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.