Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] Cache hit

I moved the annotations from the getters to the fields and this has solved my
problem with recursion, but now I seem to have a different issue.  When I
update children entitites they do not get persisted.  This was working when
I was not using the queryhint.  

Any ideas why this has changed its behavior?


Christopher Delahunt wrote:
> 
> I find it strange that the
> CpTransaction.setCpTerrorismCoverage(CpTransCoverage) line: 2226 
> call causes a
> CpTransCoverage.setCpTransaction(CpTransaction) line: 135   
> 
> Are you using the method to set back pointers?  If so, you shouldn't 
> have the JPA provider using method access, and instead annotate the 
> fields directly. 
> 
> Best Regards,
> Chris
> 
> Kevin Haskett wrote:
>> I added them to my findById -
>>
>>     public CpTransaction findById(final Long id) {
>>         EntityManager em = getEntityManager();
>>         try {
>>             final String queryString = "select model from CpTransaction
>> model where model.transactionId = :propertyValue";
>>             final Query query = em.createQuery(queryString);
>>             query.setParameter("propertyValue", id);
>>             return (CpTransaction) query.getSingleResult();
>>         } catch (final RuntimeException re) {
>>             throw re;
>>         } finally {
>>             em.close();
>>         }
>>     }
>> First I tried adding this -
>> query.setHint(QueryHints.CACHE_USAGE, CacheUsage.DoNotCheckCache);
>>
>> Then I tried this -
>> query.setHint(QueryHints.REFRESH, HintValues.TRUE);
>>
>> Which caused the looping scenario.
>>
>> -----Original Message-----
>> From: eclipselink-users-bounces@xxxxxxxxxxx
>> [mailto:eclipselink-users-bounces@xxxxxxxxxxx] On Behalf Of Tom Ware
>> Sent: Thursday, May 21, 2009 9:54 AM
>> To: EclipseLink User Discussions
>> Subject: Re: [eclipselink-users] Cache hit
>>
>> Which cache usage settings have you added to your model since your
>> initial message on this tread?
>>
>> Kevin Haskett wrote:
>>   
>>> Here is the update call -
>>>     public CpTransaction update(final CpTransaction entity) throws 
>>> DataAccessException {
>>>         CpTransaction newRef = null;
>>>         EntityManager em = getEntityManager();
>>>         newRef = em.merge(entity);
>>>         return newRef;
>>>     }
>>>  
>>>
>>> -----Original Message-----
>>> From: eclipselink-users-bounces@xxxxxxxxxxx
>>> [mailto:eclipselink-users-bounces@xxxxxxxxxxx] On Behalf Of Tom Ware
>>> Sent: Thursday, May 21, 2009 9:48 AM
>>> To: EclipseLink User Discussions
>>> Subject: Re: [eclipselink-users] Cache hit
>>>
>>> What does the code that runs this query look like?
>>>
>>> Kevin Haskett wrote:
>>>     
>>>> Now that I have added that, when I do an update it is going into a 
>>>> looping condition.
>>>>
>>>> Here is part of the stack trace -
>>>> CpTransCoverage._persistence_getcpTransaction() line: not available	
>>>> CpTransCoverage._persistence_setcpTransaction(CpTransaction) line:
>>>>       
>> not
>>   
>>>> available	
>>>> CpTransCoverage.setCpTransaction(CpTransaction) line: 135	
>>>> CpTransaction.setCpTerrorismCoverage(CpTransCoverage) line: 2226	
>>>> NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not
>>>> available [native method]	
>>>> NativeMethodAccessorImpl.invoke(Object, Object[]) line: 79	
>>>> DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
>>>> Method.invoke(Object, Object...) line: 618	
>>>> PrivilegedAccessHelper.invokeMethod(Method, Object, Object[]) line:
>>>>       
>>> 344	
>>> WeavedObjectBasicIndirectionPolicy.setRealAttributeValueInObject(Objec
>>> t,
>>>     
>>>> Object) line: 125	
>>>>
>>>>       
>>> OneToOneMapping(ForeignReferenceMapping).setRealAttributeValueInObject
>>> (O
>>>     
>>>> bject, Object) line: 1038	
>>>> OneToOneMapping(ObjectReferenceMapping).mergeIntoObject(Object,
>>>>       
>>> boolean,
>>>     
>>>> Object, MergeManager) line: 437	
>>>> ObjectBuilder.mergeIntoObject(Object, boolean, Object, MergeManager,
>>>> boolean, boolean) line: 2578	
>>>> ObjectBuilder.mergeIntoObject(Object, boolean, Object, MergeManager)
>>>> line: 2557	
>>>> MergeManager.mergeChangesOfOriginalIntoWorkingCopy(Object) line: 526	
>>>> MergeManager.mergeChanges(Object, ObjectChangeSet) line: 269	
>>>> RepeatableWriteUnitOfWork(UnitOfWorkImpl).revertObject(Object, int)
>>>> line: 4355	
>>>> ReadObjectQuery(ObjectBuildingQuery).registerIndividualResult(Object,
>>>> UnitOfWorkImpl, JoinedAttributeManager) line: 374	
>>>> ObjectBuilder.buildWorkingCopyCloneNormally(ObjectBuildingQuery,
>>>> AbstractRecord, UnitOfWorkImpl, Vector, ClassDescriptor,
>>>> JoinedAttributeManager) line: 582	
>>>> ObjectBuilder.buildObjectInUnitOfWork(ObjectBuildingQuery,
>>>> JoinedAttributeManager, AbstractRecord, UnitOfWorkImpl, Vector,
>>>> ClassDescriptor) line: 544	
>>>> ObjectBuilder.buildObject(ObjectBuildingQuery, AbstractRecord,
>>>> JoinedAttributeManager) line: 485	
>>>> ObjectBuilder.buildObject(ObjectLevelReadQuery, AbstractRecord) line:
>>>> 437	
>>>> ReadObjectQuery(ObjectLevelReadQuery).buildObject(AbstractRecord)
>>>>       
>>> line:
>>>     
>>>> 571	
>>>> ReadObjectQuery.registerResultInUnitOfWork(Object, UnitOfWorkImpl,
>>>> AbstractRecord, boolean) line: 712	
>>>> ReadObjectQuery.executeObjectLevelReadQuery() line: 436	
>>>> ReadObjectQuery(ObjectLevelReadQuery).executeDatabaseQuery() line: 
>>>> 930
>>>>       
>>>> ReadObjectQuery(DatabaseQuery).execute(AbstractSession,
>>>>       
>>> AbstractRecord)
>>>     
>>>> line: 664	
>>>> ReadObjectQuery(ObjectLevelReadQuery).execute(AbstractSession,
>>>> AbstractRecord) line: 891	
>>>> ReadObjectQuery.execute(AbstractSession, AbstractRecord) line: 397	
>>>>
>>>>       
>>> ReadObjectQuery(ObjectLevelReadQuery).executeInUnitOfWork(UnitOfWorkIm
>>> pl
>>>     
>>>> , AbstractRecord) line: 954	
>>>>
>>>>       
>>> RepeatableWriteUnitOfWork(UnitOfWorkImpl).internalExecuteQuery(Databas
>>> eQ
>>>     
>>>> uery, AbstractRecord) line: 2697	
>>>>
>>>>       
>> RepeatableWriteUnitOfWork(AbstractSession).executeQuery(DatabaseQuery,
>>   
>>>> AbstractRecord, int) line: 1181	
>>>>
>>>>       
>> RepeatableWriteUnitOfWork(AbstractSession).executeQuery(DatabaseQuery,
>>   
>>>> AbstractRecord) line: 1165	
>>>> QueryBasedValueHolder.instantiate(AbstractSession) line: 77	
>>>> QueryBasedValueHolder.instantiate() line: 67	
>>>> QueryBasedValueHolder(DatabaseValueHolder).getValue() line: 83	
>>>> UnitOfWorkQueryValueHolder(UnitOfWorkValueHolder).instantiateImpl()
>>>> line: 161	
>>>> UnitOfWorkQueryValueHolder(UnitOfWorkValueHolder).instantiate() line:
>>>> 230	
>>>> UnitOfWorkQueryValueHolder(DatabaseValueHolder).getValue() line: 83	
>>>> CpTransCoverage._persistence_getcpTransaction() line: not available	
>>>> CpTransCoverage._persistence_setcpTransaction(CpTransaction) line:
>>>>       
>> not
>>   
>>>> available	
>>>> CpTransCoverage.setCpTransaction(CpTransaction) line: 135	
>>>> CpTransaction.setCpTerrorismCoverage(CpTransCoverage) line: 2226	
>>>> NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not
>>>> available [native method]	
>>>> NativeMethodAccessorImpl.invoke(Object, Object[]) line: 79	
>>>> DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
>>>> Method.invoke(Object, Object...) line: 618	
>>>> PrivilegedAccessHelper.invokeMethod(Method, Object, Object[]) line:
>>>>       
>>> 344	
>>> WeavedObjectBasicIndirectionPolicy.setRealAttributeValueInObject(Objec
>>> t,
>>>     
>>>> Object) line: 125	
>>>>
>>>>       
>>> OneToOneMapping(ForeignReferenceMapping).setRealAttributeValueInObject
>>> (O
>>>     
>>>> bject, Object) line: 1038	
>>>> OneToOneMapping(ObjectReferenceMapping).mergeIntoObject(Object,
>>>>       
>>> boolean,
>>>     
>>>> Object, MergeManager) line: 437	
>>>> ObjectBuilder.mergeIntoObject(Object, boolean, Object, MergeManager,
>>>> boolean, boolean) line: 2578	
>>>> ObjectBuilder.mergeIntoObject(Object, boolean, Object, MergeManager)
>>>> line: 2557	
>>>> MergeManager.mergeChangesOfOriginalIntoWorkingCopy(Object) line: 526	
>>>> MergeManager.mergeChanges(Object, ObjectChangeSet) line: 269	
>>>> RepeatableWriteUnitOfWork(UnitOfWorkImpl).revertObject(Object, int)
>>>> line: 4355	
>>>> ReadObjectQuery(ObjectBuildingQuery).registerIndividualResult(Object,
>>>> UnitOfWorkImpl, JoinedAttributeManager) line: 374	
>>>> ObjectBuilder.buildWorkingCopyCloneNormally(ObjectBuildingQuery,
>>>> AbstractRecord, UnitOfWorkImpl, Vector, ClassDescriptor,
>>>> JoinedAttributeManager) line: 582	
>>>> ObjectBuilder.buildObjectInUnitOfWork(ObjectBuildingQuery,
>>>> JoinedAttributeManager, AbstractRecord, UnitOfWorkImpl, Vector,
>>>> ClassDescriptor) line: 544	
>>>> ObjectBuilder.buildObject(ObjectBuildingQuery, AbstractRecord,
>>>> JoinedAttributeManager) line: 485	
>>>> ObjectBuilder.buildObject(ObjectLevelReadQuery, AbstractRecord) line:
>>>> 437	
>>>> ReadObjectQuery(ObjectLevelReadQuery).buildObject(AbstractRecord)
>>>>       
>>> line:
>>>     
>>>> 571	
>>>> ReadObjectQuery.registerResultInUnitOfWork(Object, UnitOfWorkImpl,
>>>> AbstractRecord, boolean) line: 712	
>>>> ReadObjectQuery.executeObjectLevelReadQuery() line: 436	
>>>> ReadObjectQuery(ObjectLevelReadQuery).executeDatabaseQuery() line: 
>>>> 930
>>>>       
>>>> ReadObjectQuery(DatabaseQuery).execute(AbstractSession,
>>>>       
>>> AbstractRecord)
>>>     
>>>> line: 664	
>>>> ReadObjectQuery(ObjectLevelReadQuery).execute(AbstractSession,
>>>> AbstractRecord) line: 891	
>>>> ReadObjectQuery.execute(AbstractSession, AbstractRecord) line: 397	
>>>>
>>>>       
>>> ReadObjectQuery(ObjectLevelReadQuery).executeInUnitOfWork(UnitOfWorkIm
>>> pl
>>>     
>>>> , AbstractRecord) line: 954	
>>>>
>>>>       
>>> RepeatableWriteUnitOfWork(UnitOfWorkImpl).internalExecuteQuery(Databas
>>> eQ
>>>     
>>>> uery, AbstractRecord) line: 2697	
>>>>
>>>>       
>> RepeatableWriteUnitOfWork(AbstractSession).executeQuery(DatabaseQuery,
>>   
>>>> AbstractRecord, int) line: 1181	
>>>>
>>>>       
>> RepeatableWriteUnitOfWork(AbstractSession).executeQuery(DatabaseQuery,
>>   
>>>> AbstractRecord) line: 1165	
>>>> QueryBasedValueHolder.instantiate(AbstractSession) line: 77	
>>>> QueryBasedValueHolder.instantiate() line: 67	
>>>> QueryBasedValueHolder(DatabaseValueHolder).getValue() line: 83	
>>>> UnitOfWorkQueryValueHolder(UnitOfWorkValueHolder).instantiateImpl()
>>>> line: 161	
>>>> UnitOfWorkQueryValueHolder(UnitOfWorkValueHolder).instantiate() line:
>>>> 230	
>>>> UnitOfWorkQueryValueHolder(DatabaseValueHolder).getValue() line: 83	
>>>> CpTransCoverage._persistence_getcpTransaction() line: not available	
>>>> CpTransCoverage._persistence_setcpTransaction(CpTransaction) line:
>>>>       
>> not
>>   
>>>> available	
>>>> CpTransCoverage.setCpTransaction(CpTransaction) line: 135	
>>>> CpTransaction.setCpTerrorismCoverage(CpTransCoverage) line: 2226	
>>>> NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not
>>>> available [native method]	
>>>> NativeMethodAccessorImpl.invoke(Object, Object[]) line: 79	
>>>> DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
>>>> Method.invoke(Object, Object...) line: 618	
>>>> PrivilegedAccessHelper.invokeMethod(Method, Object, Object[]) line:
>>>>       
>>> 344	
>>> WeavedObjectBasicIndirectionPolicy.setRealAttributeValueInObject(Objec
>>> t,
>>>     
>>>> Object) line: 125	
>>>> WeavedObjectBasicIndirectionPolicy.updateValueInObject(Object,
>>>>       
>> Object,
>>   
>>>> Object) line: 93	
>>>>
>>>>       
>>> WeavedObjectBasicIndirectionPolicy.getRealAttributeValueFromObject(Obj
>>> ec
>>>     
>>>> t, Object) line: 61	
>>>>
>>>>       
>>> OneToOneMapping(ForeignReferenceMapping).getRealAttributeValueFromAttr
>>> ib
>>>     
>>>> ute(Object, Object, AbstractSession) line: 614	
>>>>
>>>>       
>>> OneToOneMapping(ObjectReferenceMapping).getRealAttributeValueFromAttri
>>> bu
>>>     
>>>> te(Object, Object, AbstractSession) line: 277	
>>>>
>>>>       
>>> OneToOneMapping(DatabaseMapping).getRealAttributeValueFromObject(Objec
>>> t,
>>>     
>>>> AbstractSession) line: 549	
>>>> OneToOneMapping(ObjectReferenceMapping).mergeIntoObject(Object,
>>>>       
>>> boolean,
>>>     
>>>> Object, MergeManager) line: 403	
>>>> ObjectBuilder.mergeIntoObject(Object, boolean, Object, MergeManager,
>>>> boolean, boolean) line: 2578	
>>>> MergeManager.mergeChangesOfCloneIntoWorkingCopy(Object) line: 500	
>>>> MergeManager.mergeChanges(Object, ObjectChangeSet) line: 267	
>>>>
>>>>       
>>> RepeatableWriteUnitOfWork(UnitOfWorkImpl).mergeCloneWithReferences(Obj
>>> ec
>>>     
>>>> t, MergeManager) line: 3334	
>>>> RepeatableWriteUnitOfWork.mergeCloneWithReferences(Object,
>>>>       
>>> MergeManager)
>>>     
>>>> line: 257	
>>>>
>>>>       
>>> RepeatableWriteUnitOfWork(UnitOfWorkImpl).mergeCloneWithReferences(Obj
>>> ec
>>>     
>>>> t, int, boolean) line: 3298	
>>>> EntityManagerImpl.mergeInternal(Object) line: 296	
>>>> EntityManagerImpl.merge(T) line: 274	
>>>> NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not
>>>> available [native method]	
>>>> NativeMethodAccessorImpl.invoke(Object, Object[]) line: 79	
>>>> DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
>>>> Method.invoke(Object, Object...) line: 618	
>>>>
>>>>       
>>> SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke
>>> (O
>>>     
>>>> bject, Method, Object[]) line: 198	
>>>> $Proxy43.merge(Object) line: not available	
>>>> CpTransactionManagerImpl.update(CpTransaction) line: 180	
>>>> NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not
>>>> available [native method]	
>>>> NativeMethodAccessorImpl.invoke(Object, Object[]) line: 79	
>>>> DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
>>>> Method.invoke(Object, Object...) line: 618	
>>>> AopUtils.invokeJoinpointUsingReflection(Object, Method, Object[])
>>>>       
>>> line:
>>>     
>>>> 307	
>>>> ReflectiveMethodInvocation.invokeJoinpoint() line: 182	
>>>> ReflectiveMethodInvocation.proceed() line: 149	
>>>> PersistenceExceptionTranslationInterceptor.invoke(MethodInvocation)
>>>> line: 138	
>>>> ReflectiveMethodInvocation.proceed() line: 171	
>>>> TransactionInterceptor.invoke(MethodInvocation) line: 106	
>>>> ReflectiveMethodInvocation.proceed() line: 171	
>>>> JdkDynamicAopProxy.invoke(Object, Method, Object[]) line: 204	
>>>> $Proxy58.update(CpTransaction) line: not available	
>>>> NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not
>>>> available [native method]	
>>>> NativeMethodAccessorImpl.invoke(Object, Object[]) line: 79	
>>>> DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
>>>> Method.invoke(Object, Object...) line: 618	
>>>> AopUtils.invokeJoinpointUsingReflection(Object, Method, Object[])
>>>>       
>>> line:
>>>     
>>>> 307	
>>>> ReflectiveMethodInvocation.invokeJoinpoint() line: 182	
>>>> ReflectiveMethodInvocation.proceed() line: 149	
>>>> TransactionInterceptor.invoke(MethodInvocation) line: 106	
>>>> ReflectiveMethodInvocation.proceed() line: 171	
>>>> JdkDynamicAopProxy.invoke(Object, Method, Object[]) line: 204	
>>>> $Proxy59.update(CpTransaction) line: not available	
>>>> PropertyAction(CppBaseAction).persistCpTrans(CpTransaction,
>>>> HttpServletRequest) line: 1195	 
>>>>
>>>>
>>>> This is happening on the udpate of the enitity I added the queryhint 
>>>> to on the find.
>>>> Seems like it keeps circulating between the CpTransCoverage entity 
>>>> and
>>>>       
>>>> the CpTransaction.
>>>>
>>>> Any ideas on this one?
>>>>
>>>> -----Original Message-----
>>>> From: eclipselink-users-bounces@xxxxxxxxxxx
>>>> [mailto:eclipselink-users-bounces@xxxxxxxxxxx] On Behalf Of Tom Ware
>>>> Sent: Wednesday, May 20, 2009 10:55 AM
>>>> To: Tom Ware
>>>> Cc: EclipseLink User Discussions
>>>> Subject: Re: [eclipselink-users] Cache hit
>>>>
>>>> Sorry...  accidentally hit send too early.
>>>>
>>>> Here's the info about the refresh hint:
>>>>
>>>> http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_%28ELUG%29#R
>>>> e
>>>> fr
>>>> esh
>>>>
>>>> I apologize for giving you information that solves a more complex 
>>>> problem than the one you are encountering in my initial response.  
>>>> The
>>>>       
>>>> cache usage setting relates to how EclipseLink will determine whether
>>>>       
>>
>>   
>>>> an object exists or not, rather than a simple refresh.
>>>>
>>>> -Tom
>>>>
>>>> Tom Ware wrote:
>>>>       
>>>>> Have you tried entityManager.refresh(object) that will guarantee SQL
>>>>>         
>>
>>   
>>>>> goes to the  DB?
>>>>>
>>>>> The refresh hint on your query will also likely solve your issue:
>>>>>
>>>>>
>>>>> If that solves you
>>>>>
>>>>> khaskett wrote:
>>>>>         
>>>>>> I changed the code for a find to be this - <code>
>>>>>>             final String queryString = "select model from 
>>>>>> CpTransaction model where model.transactionId = :propertyValue";
>>>>>>             final Query query = em.createQuery(queryString);
>>>>>>             query.setParameter("propertyValue", id);
>>>>>>             query.setHint(QueryHints.CACHE_USAGE,
>>>>>> CacheUsage.DoNotCheckCache);
>>>>>>             return (CpTransaction) query.getSingleResult(); </code>
>>>>>>
>>>>>> And now I see this call in the logs -
>>>>>>
>>>>>> [5/20/09 10:34:50:203 CDT] 0000003e SystemOut     O [EL Fine]:
>>>>>>           
>>>> 2009-05-20
>>>>       
>>>>>> 10:34:50.203--ServerSession(421796132)--Connection(1967945036)--Thr
>>>>>> e
>>>>>> a
>>>>>> d(Thread[WebContainer
>>>>>>
>>>>>> : 4,5,main])--SELECT TRANSACTION_ID, PREMIUM_ACTUAL, PREMIUM_NET, 
>>>>>> AUDIT_REPORT, REINSURANCE_TYPE, TRANSITION_YEAR, INSURED_EMAIL, 
>>>>>> CREATION_DATE, PREVIOUS_POLICY_NUMBER, PREMIUM_TARGET, 
>>>>>> COMPANY_CODE,
>>>>>>           
>>>>>> BILL_CHANGE, DELETION_DATE, BILL_TYPE_RENEWAL, LOCK_SESSION, 
>>>>>> TRANSACTION_STATUS, DEC_IND, PROGRAM_TYPE, PRINT_NOTICE, 
>>>>>> PROCESSING_DATE, INSURED_SUPPLEMENTARY_TYPE, TRANSACTION_UW, 
>>>>>> SETUP_DATE, MAIL_TYPE, EXCLUDE_PKG_DISC, REASON_CODE, 
>>>>>> PT_EMPLOYEE_COUNT, DOC_MGMT_FLAG, BILL_PLAN_RENEWAL, 
>>>>>> SHORT_TERM_FACTOR, RATE_EFFECTIVE_DATE, PCT_TERM, ACORD_FLAG, 
>>>>>> INSURED_SUPPLEMENTARY_NAME, LOCK_EDITOR, BILL_PLAN, EMPLOYEE_COUNT,
>>>>>>           
>>
>>   
>>>>>> TRANSACTION_FORMAT, BILL_ACCOUNT, TRANSACTION_FLAG, 
>>>>>> RELATED_POLICY_NUMBER, PREMIUM_PREVIOUS, INSURED_FAX, 
>>>>>> REINSURANCE_COST, RATE_LEVEL, OOS_DATA, PREMIUM_WAIVED_IND, 
>>>>>> TRANSACTION_DESC, TRANSACTION_LABEL, RATING_FLAG, 
>>>>>> MODIFICATION_DATE,
>>>>>>           
>>>>>> PRIMARY_STATE, POLICY_NUMBER, INSURED_PHONE, PRODUCER, PREMIUM_MIN,
>>>>>>           
>>
>>   
>>>>>> TRANSACTION_TYPE, PARENT_TRANSACTION_ID, CONTACT_PHONE, BILL_TYPE, 
>>>>>> BILL_TO_RENEWAL, APPROVAL_INITIALS, EFFECTIVE_DATE, BILL_TO, 
>>>>>> PREMIUM_RECALC_MIN_IND, RENEWAL_TYPE, ACCOUNT_NUM, SUSPENSE_NUMBER,
>>>>>>           
>>
>>   
>>>>>> SHORT_TERM_INDICATOR, INSURED_NAME, SUSPENSE_AMT, 
>>>>>> BUSINESS_TYPE_DETAIL, CONTACT_NAME, LOCK_OWNER, POLICY_TYPE, 
>>>>>> BUSINESS_TYPE, BUSINESS_DESCRIPTION, EXPIRATION_DATE, 
>>>>>> PREMIUM_WAIVED, INSURED_FEIN, REASON_DESC, CONTRACT_NUMBER, 
>>>>>> CHANGE_DATE, RATE_TABLE_DATE, DENY_FLAG, REINSURANCE_COMPANY, 
>>>>>> YRS_BUS, AGENCY_EFT, AGT_RESET, AUDIT_TYPE, POLICY_LOB, 
>>>>>> PREMIUM_MEET_MIN, AUDIT_NAME, INSURED_MAILING_NAME, BUSINESS_PHONE,
>>>>>>           
>>
>>   
>>>>>> POLICY_PMA, ACTION_CODE, INSURED_CITY, INSURED_COUNTY, 
>>>>>> INSURED_ADDRESS_2, INSURED_ADDRESS_1, INSURED_STATE, 
>>>>>> INSURED_POSTAL_CODE FROM CP_TRANSACTION WHERE (TRANSACTION_ID = 
>>>>>> CAST (? AS BIGINT ))
>>>>>>     bind => [32967]
>>>>>>
>>>>>> But I am getting an old copy of the data.  I can use a tool like 
>>>>>> SQLSquirrel and I see that it has data that is not reflected in 
>>>>>> what
>>>>>>           
>>>>>> is being returned by the find.
>>>>>>
>>>>>> How is that possible?
>>>>>>
>>>>>>
>>>>>> tware wrote:
>>>>>>           
>>>>>>> Although the following are not specifically for "find" operations,
>>>>>>>             
>>
>>   
>>>>>>> they may be helpful.
>>>>>>>
>>>>>>> First, try writing a query that makes use of caching hints:
>>>>>>>
>>>>>>> http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_%28ELUG%2
>>>>>>> 9
>>>>>>> #
>>>>>>> Cache_Usage
>>>>>>>
>>>>>>>
>>>>>>> For configuring on a more broad scale there are some entity-level 
>>>>>>> config options here:
>>>>>>>
>>>>>>> http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_%28ELUG%2
>>>>>>> 9
>>>>>>> #
>>>>>>> How_to_Use_the_.40Cache_Annotation
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> khaskett wrote:
>>>>>>>             
>>>>>>>> Is there a way on a find, to know if the value returned was from 
>>>>>>>> the cache or was a DB read?  Or is there a way to always force a 
>>>>>>>> read from the database on a find?
>>>>>>>>
>>>>>>>>               
>>>>>>> _______________________________________________
>>>>>>> eclipselink-users mailing list
>>>>>>> eclipselink-users@xxxxxxxxxxx
>>>>>>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>>>>>>
>>>>>>>
>>>>>>>             
>>>> _______________________________________________
>>>> eclipselink-users mailing list
>>>> eclipselink-users@xxxxxxxxxxx
>>>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>>>
>>>>
>>>> This message (including any attachments) is intended only for the use
>>>>       
>>
>>   
>>>> of the individual or entity to which it is addressed and may contain 
>>>> information that is non-public, proprietary, privileged, 
>>>> confidential,
>>>>       
>>>> and exempt from disclosure under applicable law or may constitute as 
>>>> attorney work product.
>>>> If you are not the intended recipient, you are hereby notified that 
>>>> any use, dissemination, distribution, or copying of this 
>>>> communication
>>>>       
>>>> is strictly prohibited. If you have received this communication in 
>>>> error, notify us immediately by telephone and
>>>> (i) destroy this message if a facsimile or (ii) delete this message 
>>>> immediately if this is an electronic communication.
>>>>
>>>> Thank you.
>>>> _______________________________________________
>>>> eclipselink-users mailing list
>>>> eclipselink-users@xxxxxxxxxxx
>>>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>>>       
>>> _______________________________________________
>>> eclipselink-users mailing list
>>> eclipselink-users@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>>
>>>
>>> This message (including any attachments) is intended only for the use 
>>> of the individual or entity to which it is addressed and may contain 
>>> information that is non-public, proprietary, privileged, confidential,
>>>     
>>
>>   
>>> and exempt from disclosure under applicable law or may constitute as 
>>> attorney work product.
>>> If you are not the intended recipient, you are hereby notified that 
>>> any use, dissemination, distribution, or copying of this communication
>>>     
>>
>>   
>>> is strictly prohibited. If you have received this communication in 
>>> error, notify us immediately by telephone and
>>> (i) destroy this message if a facsimile or (ii) delete this message 
>>> immediately if this is an electronic communication.
>>>
>>> Thank you.
>>> _______________________________________________
>>> eclipselink-users mailing list
>>> eclipselink-users@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>>     
>> _______________________________________________
>> eclipselink-users mailing list
>> eclipselink-users@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>
>>
>> This message (including any attachments) is intended only for
>> the use of the individual or entity to which it is addressed and
>> may contain information that is non-public, proprietary,
>> privileged, confidential, and exempt from disclosure under
>> applicable law or may constitute as attorney work product.
>> If you are not the intended recipient, you are hereby notified
>> that any use, dissemination, distribution, or copying of this
>> communication is strictly prohibited. If you have received this
>> communication in error, notify us immediately by telephone and
>> (i) destroy this message if a facsimile or (ii) delete this message
>> immediately if this is an electronic communication.
>>
>> Thank you.
>> _______________________________________________
>> eclipselink-users mailing list
>> eclipselink-users@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>   
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
> 
> 

-- 
View this message in context: http://www.nabble.com/Cache-hit-tp23619031p23932316.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.



Back to the top