Manipulating Hibernate 2nd Level Cache?

I would call "afterInsert" on the EntityPersister that maps to your entity since Read/Write is an asynchronous concurrency strategy. I pieced this together after looking through the 3 source. I am not 100% that this will work, but it looks good to me.

I would call "afterInsert" on the EntityPersister that maps to your entity since Read/Write is an asynchronous concurrency strategy. I pieced this together after looking through the 3 source. I am not 100% that this will work, but it looks good to me.

EntityPersister persister = ((SessionFactoryImpl) session. GetSessionFactory()). GetEntityPersister("theNameOfYourEntity"); if (persister.hasCache() &&!persister.

IsCacheInvalidationRequired() && session.getCacheMode().isPutEnabled()) { CacheKey ck = new CacheKey( theEntityToBeCached.getId(), persister. GetIdentifierType(), persister. GetRootEntityName(), session.getEntityMode(), session.getFactory() ); persister.

GetCacheAccessStrategy(). AfterInsert(ck, theEntityToBeCached, null); } -- /** * Called after an item has been inserted (after the transaction completes), * instead of calling release(). * This method is used by "asynchronous" concurrency strategies.

* * @param key The item key * @param value The item * @param version The item's version value * @return Were the contents of the cache actual changed by this operation? * @throws CacheException Propogated from underlying {@link org.hibernate.cache. Region} */ public boolean afterInsert(Object key, Object value, Object version) throws CacheException.

I did this by creating my own cache provider. I just overrode EhCacheProvider and used my own variable for the manager so I could return it in a static. Once you get the CacheManager, you can call manager.

GetCache(class_name) to get a Cache for that entity type. Then you build a CacheKey using the primary key, the type, and the class name: CacheKey cacheKey = new CacheKey(key, type, class_name, EntityMode. POJO, (SessionFactoryImplementor)session.

GetSessionFactory()); The Cache is essentially a map so you can check to see if your object is in the cache, or iterate through the entities. There might be a way to access the CacheProvider when you build the SessionFactory initially which would avoid the need to implement your own.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions