VamsiKrishna, я не совсем уверен, что вы пытаетесь достичь здесь, но я думаю, вы хотите избежать того, чтобы два потока загружали одну и ту же сущность из БД.Боюсь, вы не сможете этого добиться.Во-первых, Hibernate не хранит сущности в кэше, а выводит их из строя.Создание их и последующее размещение их так, чтобы слой Ehcache мог с ними справиться (они могут быть перемотаны в некоторые другие внутренние типы iirc), все, что я считаю невозможным (доступность типов будет одной из проблем).вы можете использовать BlockingCache, чтобы имитировать поведение и позволить Hibernate заполнять кэш.Проблема в том, что Hibernate не будет помещать нулевые значения в кеш, если я правильно помню.Несоблюдение этого требования в конечном итоге заблокирует весь ваш кэш.
Короче говоря, я думаю, что вам лучше позволить Hibernate самостоятельно справиться с одновременным доступом к кэшу (контролируемому стратегией доступа к кешу), так как пользователь ничего не должен делать...