After many hours of hacking I came to conclusion that ehcache's beloved decorators are simply useless with any ORM. This is because hibernate, for instance, never stores original key/object in the cache but stores either CacheKey/Map or CacheKey/CacheEntry with some extra parameters that are simply not available outside of hibernate. So, even if I implemented CacheEntryFactory to find and return entry, this entry is not what hibernate wants - it wants CacheEntry. I could prolly mock CacheEntry and fool hibernate but what good is that hack for production application.
If Greg L. or anyone else has an idea about using cache decorators with ORMs - please speak up.