Quote:
Isn't this too big waste of memory:-).
Certainly not. If you do not use second level cache, then queries are fired to database to retrieve the objects. Database operations are considered to be slow, resource consuming and expensive. If you enable second level cache, then the objects can be resolved in the memory and the operation is much faster.
Also, you do have ways of specifying which object to cache, how long to cache(the eviction policy). So you do have control of how and how many objects stay in memory(cache)