Yes, Hibernate can be used in the context of EJB. According to the strict letter of the law it may be breaking part of the programming restrictions in the specification but I don't see that as a big deal. Many people are successfully using Hibernate in EJB Applications and are very happy with the results... I am one of them.
Kishore, the main reason for using EJB on top of Hibernate is definitely transaction management... plus possibly security or remoting. Hibernate does not certain itself with transaction management... it just participates in transactional contexts.
An alternative to using EJB for managing transactions is to take a look at
Spring. Spring offers declarative transactioning as part of its lightweight container services. Spring rocks! If there is interest I will write a JavaRanch article detailing how to use Spring in the context...
[ April 08, 2004: Message edited by: Chris Mathews ]