OpenJPA has the ability to cache both. LieGrue, struy
----- Original Message ----- > From: Romain Manni-Bucau <rmannibu...@gmail.com> > To: dev@openejb.apache.org > Cc: > Sent: Thursday, October 4, 2012 7:18 AM > Subject: Re: Can jpa queries be cached? > > Hi, > > With a jta persistence unit you shouldnt manage these things. > > Then the cache of queries should be configured for sql queries. Jpa queries > are not so costly. > > - Romain > Le 4 oct. 2012 01:47, "David Jencks" <david_jen...@yahoo.com> a > écrit : > >> I see that both geronimo and openejb have jta or non-tx jpa query wrappers >> that close the entity manager after the query executes. This pretty >> effectively prevents the query from being re-executed. >> >> Despite recalling having written the geronimo version, I can't remember >> why this is necessary. >> >> We've found someone who is doing something like this: >> >> @Stateless >> @ConcurrencyManagement(ConcurrencyManagementType.CONTAINER) >> @TransactionManagement(TransactionManagementType.CONTAINER) >> @TransactionAttribute(TransactionAttributeType.REQUIRED) >> public class Foo implements FooLocal >> { >> @PersistenceContext(unitName="FooJpa", type = >> PersistenceContextType.TRANSACTION) private EntityManager em; >> >> private Query findBars; >> >> @PostConstruct void postConstruct() >> { >> findBars = em.createNamedQuery("findBars"); >> } >> >> public Collection<Bar> getAllBars() { >> return findBars.getResultList(); >> } >> } >> >> The second time getAllBars() is called, the em is closed. >> >> There are some other errors in their code which might possibly be causing >> this, but I think what is happening is that the postconstruct is executing >> outside a jta transaction, so that the findBars query is a wrapped query >> that closes itself after the query executes, even though it is executing in >> a jta environment. >> >> Should our wrapper only close the em if it is executed (rather than >> created) outside a jta tx? >> >> advice really appreciated :-) >> >> thanks >> david jencks >> >> >> >