Hibernate is a ORM tool. It comes with some over head as compared to using plain JDBC but advantages are enormous. As you say that your application will be doing read operation most of the time, its good to use cache available with hibernate. This will save lot of trips to database when user wants to access historical data.
If you are comparing Hibernate with EJB, the decision depends on what architecture you are following? How far you want your application to be clustered?
There are many threads on this discussion
http://www.hibernate.org/124.html
Amit.