Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] Force query to db and not use cache

Thanks, I actually tried em.refresh() before looking at this post, and was
coming back to say that's what worked for me.

I didn't know there was a query hint though, and I might try that, because I
don't quite like having to explicitly call refresh in my function. Hopefully
that works.

I did think about the cache expiry, and maybe that will work, the problem
is, the external file isn't always loaded at exactly the same time. Not my
choice. But, I believe it is around the same time, so maybe I can set it to
expire an hour or so after.

Thanks for all the help from both of you...


tware wrote:
> 
> Some things to try:
> 
> Refreshing:
> 
> Either use the em.refresh() API, or use the query hint:
> 
> eclipselink.refresh=true
> 
> Cache Expiry:
> 
> The cache can be set to expire at a certain time of day or after a certain 
> amount of time.  Here is some info about how to set the cache to expire at
> a 
> certain time of day:
> 
> http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_%28ELUG%29#How_to_Use_the_.40TimeOfDay_Annotation
> 
> -Tom
> 
> 
> Stephiems wrote:
>> Ok, I realized I didn't look at my log close enough.
>> 
>> I had tried this:
>> 
>> query.setHint(QueryHints.CACHE_USAGE, CacheUsage.DoNotCheckCache);
>> 
>> and I tried your suggestion as well.
>> 
>> Both have the same result. My query does show the sql, so it seems like
>> it
>> is going to the database, but it doesn't seem to pick up a new object.
>> 
>> Basically, before, it looked like it wasn't even trying to query
>> anything,
>> no sql statement showed up in my logs. With the query hint, there is a
>> query, but after the query I print out the object in my log to check the
>> result, and the value I had manually changed in the database, isn't
>> correct. 
>> 
>> Here is my code:
>> 
>> logger.debug("Getting customer...");
>> Customer customer = customerService.getCustomer(customerId);
>> logger.debug("Done getting customer...");
>> logger.debug("Customer: " + customer);
>> 
>> Before I put in the query hint, on the first call of the struts2 action
>> which the lines above are in, there is a query between the Getting and
>> Done
>> getting statements. On the second call, there is nothing.
>> 
>> After I put in the query hint, there is an sql statement between the two,
>> but when I print out the customer object, even though I changed a value
>> in
>> the database, it doesn't seem to be picked up, even though it looks like
>> it
>> returns to the database.
>> 
>> 
>> 
>> Michael Bar-Sinai wrote:
>>> I have no experience with spring, but this works in JEE5:
>>>
>>> public class JpaUtils {
>>>
>>>     /**
>>>      * Makes q ignore the cache.
>>>      * @param q the query that has to go straight to the DB.
>>>      * @return q the query that will go to the db now
>>>      */
>>>     public static Query noCache( Query q ) {
>>>         // /!\ Eclipselink specific. Should make the em go straight to
>>> the
>>> DB.
>>>         q.setHint("org.eclipse.persistence.config.CacheUsage",
>>> "DoNotCheckCache");
>>>         return q;
>>>     }
>>>
>>> }
>>>
>>>
>>> On Mon, May 31, 2010 at 8:26 AM, Stephiems <stephanie@xxxxxxxxxxxxxx>
>>> wrote:
>>>
>>>> I've done a search through this forum and tried just about everything
>>>> I've
>>>> found on here from query hints to the cache annotation and properties
>>>> in
>>>> the
>>>> persistence.xml file and I cannot force a particular entity to go to
>>>> the
>>>> database every time.
>>>>
>>>> I have a table that is updated by an outside source every day, and I
>>>> want
>>>> to
>>>> force going to the database everytime to pick up any changes. No matter
>>>> what
>>>> I do it doesn't go to the database the second time.
>>>>
>>>> I'm wondering if it is the transaction, or possibly the fact I'm using
>>>> spring, that is causing it. Anyone else have this issue?
>>>>
>>>> Cheers,
>>>> Stephanie
>>>> --
>>>> View this message in context:
>>>> http://old.nabble.com/Force-query-to-db-and-not-use-cache-tp28726862p28726862.html
>>>> Sent from the EclipseLink - Users mailing list archive at Nabble.com.
>>>>
>>>> _______________________________________________
>>>> 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
>>>
>>>
>> 
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
> 
> 

-- 
View this message in context: http://old.nabble.com/Force-query-to-db-and-not-use-cache-tp28726862p28736956.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.



Back to the top