9.5. Using Java Persistence in EJB components
A managed runtime environment implies some sort of container. Your application components live inside this container. Most containers these days are implemented using an interception technique, method calls on objects are intercepted and any code that needs to be executed before (or after) the method is applied. This is perfect for any cross-cutting concerns: Opening and closing an EntityManager, because you need it inside the method that is called, is certainly one. Your business logic doesn't need to be concerned with this aspect. Transaction demarcation is another concern a container can take care of for you. (You'll likely find other aspects in any application.)
Unlike older application servers ...
Get Java Persistence with Hibernate now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.