Jeff, Could you provide more info : 1. in persistence.xml, show us how you enable DataCache and QueryCache. 2. the updates to RelationshipInfo, is that done by the same application that issued the query ? or some other application ? 3. Could you show the code fragment that issues em.createQuery ?
Thanks. Catalina On Mon, Nov 2, 2009 at 10:15 AM, Jeff Awe <[email protected]> wrote: > I'm running on OpenJPA 1.2.1 > > The following query is added to the QueryCache: > > Query: org.apache.openjpa.kernel.queryi...@3afe3afe; > candidate class: class com.ibm.usmi.datamodel.system.OperatingSystem; > query: SELECT distinct > > OPERATINGSYSTEM1.OID,OPERATINGSYSTEM1.Guid,OPERATINGSYSTEM1.ObjectType,OPERATINGSYSTEM1.Name,REMOTESERVICEACCESSPOINT1.OID,REMOTESERVICEACCESSPOINT1.Guid,REMOTESERVICEACCESSPOINT1.ObjectType,REMOTESERVICEACCESSPOINT1.Name > FROM OperatingSystem > OPERATINGSYSTEM1,System_accessedVia_RemoteServiceAccessPoint > SYSTEM_ACCESSEDVIA_REMOTESERVICEACCESSPOINT1,RemoteServiceAccessPoint > REMOTESERVICEACCESSPOINT1,RelationshipInfo RELATIONSHIPINFO1 WHERE > OPERATINGSYSTEM1.OID = > SYSTEM_ACCESSEDVIA_REMOTESERVICEACCESSPOINT1.sourceId > AND REMOTESERVICEACCESSPOINT1.OID = > SYSTEM_ACCESSEDVIA_REMOTESERVICEACCESSPOINT1.targetId AND > (OPERATINGSYSTEM1.Guid = ?1) AND (OPERATINGSYSTEM1.OID = ?2) AND > ((OPERATINGSYSTEM1.BuildNumber = ?3)) AND (REMOTESERVICEACCESSPOINT1.Guid = > ?4) AND (REMOTESERVICEACCESSPOINT1.OID = ?5) AND > ((REMOTESERVICEACCESSPOINT1.Port = ?6)) AND RELATIONSHIPINFO1.changedDate > > ?7 and RELATIONSHIPINFO1.sourceOID=OPERATINGSYSTEM1.OID and > RELATIONSHIPINFO1.relationshipType = ?8 and > RELATIONSHIPINFO1.targetOID=REMOTESERVICEACCESSPOINT1.OID > > Later on, a record in RelationshipInfo is changed, which changes what > should > be returned from this query. I'd expect this to cause the cached query to > get evicted from the QueryCache, but it is not. If I get the > QueryResultCache, and evictAll RelationshipInfo.class, it still doesn't get > removed. This seems to be because the AccessPath only contains > OperatingSystem. I'd expect this to contain all entities that this query > deals with: > {OperatingSystem, > System_accessedVia_RemoteServiceAccessPoint, RemoteServiceAccessPoint, > RelationshipInfo} > But the AccessPath only seems to contain the entity of what is returned > from > the query. > > What do I need to do so this query gets evicted like I'd expect. > > Thanks - Jeff >
