sebersole, are you too busy? I have a question about SessionImplementor.getTimestamp() for you ok sebersole, its javadoc says "System time before the start of the transaction" sebersole, should I assume this means that this timestamp is updated on "begin" and/or "commit" ? sebersole, because from what I could see, this value is never updated during a session sebersole, only when closing/opening jcosta: nope it is only ever written when the session is constructed so, the javadoc is misleading :-) http://fisheye.jboss.org/browse/Hibernate/core/trunk/core/src/main/java/org/hibernate/impl/SessionImpl.java?r=18697#l183 why? it says: System time *before* the start of the transaction it does not say System time when the last or current transaction was started though technically with JTA it may actually not even be before the transaction that's accurate, but misleading :-) it transmits the idea that "transaction" have influence on its value and it doesn't... it's touched only in session creation i guess the doc could be misread that way :) good then I can move to the next question, which involves this same getTimestamp :_) :-) though this is the first time i have heard that misreading in 9 years ;) sebersole, well, perhaps because getTimestamp is used in only a few places in the code (and it's an implementation detail, not public api) anyway techincally it should say before the start of the session sessionimplementor is an spi its used in all integrations like StatelessSession and SessionImpl :-) ? like cache providers like transaction factories etc spi Service Provider Interface yes, I understand that, but the only ones which implements SessionImplementor are StatelessSession and SessionImpl generally speaking in Hibernate that is stuff named XYZImplementor um ok yes anyway, my point is, there's one guy which relies on this value and I *think* it may not be using it the right way UpdateTimestampsCache.isUpToDate() in order to see if the cached data is up to date, it compares the cached data timestamp with session's but if it created the cache during the same session, it's value will be higher than session's timestamp thus, returning "false" (ie: do not use cache) for all subsequent "cached queries" sebersole, that means, if I have a query cache for "from Country" and run it three times in the same session, it will hit the database three times but if i run it once, close the session, reopen the session and run two more times, it hits the database only once so whats the fix? sebersole, it depends on where's the bug