Much of the work surrounding the design and development of enterprise
applications involves decisions about how to coordinate the flow of
persistent data. This includes when and where to cache data, when to apply it
to a persistent store (typically the database), how to resolve simultaneous
attempts to access the same data and how to resolve errors that might occur
while data in the database is in an inconsistent state. A reliable database
is capable of handling these issues at a low level in the database tier, but
these same issues can exist in the middle (application server) and client
tiers as well, and typically require special application logic. One of the
principal benefits of using EJB 3 is its support for enterprise-wide services
like transaction management and ... (more)
The persistence model introduced in EJB 3.0 as a replacement for entity beans
is known as the Java Persistence API (JPA). The JPA borrows from both
proprietary and open source models, such as Oracle TopLink, Hibernate,
Spring, and other frameworks, which have gained traction as popular
alternatives to the often heavyweight and cumbersome persistence directives
required by earlier EJB rev... (more)