Maybe you can compare Hibernate and EJB3. EJB3 is very strong and reliable for enterprise systems. In small scale you will lose performance. In EJB2 we had a problem for using entity bean and the problem was complexity of it. They solved this problem for entity bean and Hibernate was their model for it. For small businesses the EJB container can be a problem. Some web servers don’t have any EJB container.
The best pattern for practicing in small businesses according my experiences is JSF and Hibernate. In this case you don’t need any kind of special container and you can have an out of box solution.