@Override public QueryCache getQueryCache( final String regionName, final UpdateTimestampsCache updateTimestampsCache, final Settings settings, final Properties props) throws HibernateException { return new StandardQueryCache(settings, props, updateTimestampsCache, regionName); } }
private static void logCachedResultRowDetails(Type[] returnTypes, Object result) { if ( !LOG.isTraceEnabled() ) { return; } logCachedResultRowDetails( returnTypes, ( result instanceof Object[] ? (Object[]) result : new Object[] { result } ) ); }
logCachedResultDetails( key, spaces, returnTypes, cacheable ); if ( !isNaturalKeyLookup && !isUpToDate( spaces, timestamp ) ) { LOG.debug( "Cached query results were not up-to-date" ); return null; ); logCachedResultRowDetails( returnTypes, result.get( i - 1 ) );
@SuppressWarnings({ "UnnecessaryBoxing", "unchecked" }) public boolean put( QueryKey key, Type[] returnTypes, List result, boolean isNaturalKeyLookup, SessionImplementor session) throws HibernateException { if ( isNaturalKeyLookup && result.isEmpty() ) { return false; } long ts = cacheRegion.nextTimestamp(); LOG.debugf( "Caching query results in region: %s; timestamp=%s", cacheRegion.getName(), ts ); List cacheable = new ArrayList( result.size() + 1 ); logCachedResultDetails( key, null, returnTypes, cacheable ); cacheable.add( ts ); final boolean singleResult = returnTypes.length == 1; for ( Object aResult : result ) { Serializable cacheItem = singleResult ? returnTypes[0].disassemble( aResult, session, null ) : TypeHelper.disassemble( (Object[]) aResult, returnTypes, null, session, null ); cacheable.add( cacheItem ); logCachedResultRowDetails( returnTypes, aResult ); } cacheRegion.put( key, cacheable ); return true; }
logCachedResultDetails( key, spaces, returnTypes, cacheable ); if ( !isNaturalKeyLookup && !isUpToDate( spaces, timestamp ) ) { LOG.debug( "Cached query results were not up-to-date" ); return null; ); logCachedResultRowDetails( returnTypes, result.get( i - 1 ) );
@SuppressWarnings({ "UnnecessaryBoxing", "unchecked" }) public boolean put( QueryKey key, Type[] returnTypes, List result, boolean isNaturalKeyLookup, SessionImplementor session) throws HibernateException { if ( isNaturalKeyLookup && result.isEmpty() ) { return false; } long ts = cacheRegion.nextTimestamp(); LOG.debugf( "Caching query results in region: %s; timestamp=%s", cacheRegion.getName(), ts ); List cacheable = new ArrayList( result.size() + 1 ); logCachedResultDetails( key, null, returnTypes, cacheable ); cacheable.add( ts ); final boolean singleResult = returnTypes.length == 1; for ( Object aResult : result ) { Serializable cacheItem = singleResult ? returnTypes[0].disassemble( aResult, session, null ) : TypeHelper.disassemble( (Object[]) aResult, returnTypes, null, session, null ); cacheable.add( cacheItem ); logCachedResultRowDetails( returnTypes, aResult ); } cacheRegion.put( key, cacheable ); return true; }
@Override public QueryCache getQueryCache( final String regionName, final UpdateTimestampsCache updateTimestampsCache, final Settings settings, final Properties props) throws HibernateException { return new StandardQueryCache(settings, props, updateTimestampsCache, regionName); } }
private static void logCachedResultRowDetails(Type[] returnTypes, Object result) { if ( !LOG.isTraceEnabled() ) { return; } logCachedResultRowDetails( returnTypes, ( result instanceof Object[] ? (Object[]) result : new Object[] { result } ) ); }