[ https://issues.apache.org/jira/browse/OPENJPA-2668?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16817984#comment-16817984 ]
Michael Wiles commented on OPENJPA-2668: ---------------------------------------- added github project (reused an old one actually)... [https://github.com/michaelwiles/openjpa-spring-data-bug] with [test|https://github.com/michaelwiles/openjpa-spring-data-bug/blob/master/src/test/java/com/afrozaar/bug/openjpa/OpenJPA_2668_Test.java] > CriteriaQuery instances should not change their state based on Query > instances created from them > ------------------------------------------------------------------------------------------------ > > Key: OPENJPA-2668 > URL: https://issues.apache.org/jira/browse/OPENJPA-2668 > Project: OpenJPA > Issue Type: Bug > Components: jpa > Affects Versions: 2.4.1 > Reporter: Oliver Drotbohm > Assignee: Mark Struberg > Priority: Major > > JPA has a two-step, programatic query creation process: first, you create a > {{CriteriaQuery}} to build up the general query structure, add constraints on > it etc. Then you take that instance and create a {{(Typed)Query}} instance > from it using the currently available {{EntityManager}} and bind parameters > to it. > According to [reports we got for Spring Data > JPA|https://jira.spring.io/browse/DATAJPA-969], the latter step changes the > state of the {{CriteriaQuery}} instance, so that subsequent creations of > {{Query}} instances from it (and subsequent parameter bindings in turn) don't > actually get applied correctly. > Even if the subsequent creation and parameter binding got applied, that > change of state in {{CriteriaQuery}} instances is problematic in concurrent > access scenarios as the bindings might override each other partially. > Generally speaking I'd recommend to keep the {{CriteriaQuery}} instances > immutable with regards to the creation of {{Query}} instances from them and > the subsequent handling of those {{Query}} instances. -- This message was sent by Atlassian JIRA (v7.6.3#76005)