[ https://issues.apache.org/jira/browse/OPENJPA-1903?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Albert Lee closed OPENJPA-1903. ------------------------------- > Some queries only work the first time they are executed > ------------------------------------------------------- > > Key: OPENJPA-1903 > URL: https://issues.apache.org/jira/browse/OPENJPA-1903 > Project: OpenJPA > Issue Type: Bug > Components: query > Affects Versions: 2.0.1 > Reporter: Dominik Stadler > Assignee: Pinaki Poddar > Fix For: 2.2.0 > > > I have a problem in my application where a query that sometimes returns data > and sometimes not. > I have reduced it to the code as much as I could into an Eclipse project > available at http://ubuntuone.com/p/S9n/ > This happens with OpenJPA 2.0.1 as well as the daily snapshot from 2010-12-05 > and an out-of-process Derby database. > Basically I have two Entities which both use multiple Ids to produce the > Primary Key, "Preis" contains a foreign key on "Website": > @Entity > @IdClass(MandantAndNameIdentity.class) > public class Website { > @Id > private String mandant; > > @Id > private String name; > ... > } > @Entity > @IdClass(WebsiteProduktDatumIdentity.class) > public class Preis { > @Id > @ManyToOne(cascade = CascadeType.MERGE) > private Website website; > @Id > @Basic > private String datum; > ... > } > I use the following to set up a website and a Preis: > em.getTransaction().begin(); > Website website = em.merge(new Website("Mandant", "Website")); > em.merge(new Preis(website, DATUM)); > > em.getTransaction().commit(); > Afterwards, if I run the query as follows: > TypedQuery<Preis> q = em.createQuery( > "select m from Preis m " + > "where m.website.name = :website ", Preis.class); > q.setParameter("website", website.getName()); > this query works all the time, note that it uses website.name for matching, > not the full Website-object. > However if I put the query as > TypedQuery<Preis> q = em.createQuery( > "select m from Preis m " + > "where m.website = :website ", Preis.class); > q.setParameter("website", website); > it only works ONCE and then does not return any results any more!! See > testcase DataAccessVerifyTest for details. > Discussion on the mailinglist seems to indicate that this is a bug. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira