This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Yes. First, keep in mind that EJBs can be session beans, entity beans (in EJB 2) or message driven beans. Only entity beans serve the same purpose as hibernate. Using the other two types of EJB doesn't introduce two technologies with the same purpose.
In EJB 3, entity beans became an API called JPA. Hibernate is also an implementation of JPA. As you can see, these technologies are designed to work well together.
I'm wondering which version of EJB you are referring to. You will be surprised how Hibernate plays a very important role in the EJB 3 world.
Prior to EJB 3, there exist Entity Beans which I don't think integrates nicely with Hibernate.
But then EJB 3 came, along with the new JPA specification (Java Persistence API), whose concepts were mostly derived from Hibernate (courtesy of Gavin King).
In fact, Hibernate is an implementation of JPA (TopLink is another famous implementation). So if you use JPA, I don't think transactions can be handled solely by either EJB or by Hibernate since they are now on the SAME team.
I think the more specific question would now be whether you want JTA transactions or resource local transactions.