[
https://issues.apache.org/jira/browse/OPENJPA-2769?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mark Struberg reassigned OPENJPA-2769:
--------------------------------------
Assignee: Mark Struberg
> For some queries, parameters are not found
> ------------------------------------------
>
> Key: OPENJPA-2769
> URL: https://issues.apache.org/jira/browse/OPENJPA-2769
> Project: OpenJPA
> Issue Type: Bug
> Components: kernel
> Affects Versions: 2.4.2
> Reporter: Pawel Veselov
> Assignee: Mark Struberg
> Priority: Major
> Attachments: temp.jsp
>
>
> I build a rather simple query using criteria API. I use the query a few
> times, there are no problems.
> I then re-use the query in another transaction, and get an error "declared
> parameters were not given values". Of course the values were given.
> So far I traced it to
> QueryImpl.assertParameters(StoreQuery, StoreQuery.Executor, java.util.Map)
> gets ordered parameter type map from the executor. That map should contain
> keys of type "ParameterExpression", but it instead contains keys of type
> String (with the correct parameter names and values, though).
> I don't know how those keys get there, by the time assertParameters() is
> executed, there are already there, and they are like 3 objects deep. I don't
> understand when are these objects updated, and which one is updated, and what
> can the reasons be.
> There are a few requirements:
> # Criteria query must be used twice in one transaction
> # A parameter value of null must have been used first
> There may be other combinations, but certainly if you use it with null, then
> with not null, then use it again in the next transaction, something happens
> with the internal structure. When joins where used, I saw even parser errors.
> Code is attached. Sorry for the JSP, it makes it easier for me to run JPA
> code in a server.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)