[ 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)