The arrival of an Enterprise Java Persistence standard, based on a "POJO" development model, fills a substantial gap in the Java EE platform. The previous attempt of EJB 2.x specification missed the mark and created the stereotype of EJB entity beans as awkward to develop and too heavy for many applications. Therefore, it never reached the level of widespread adoption or general approval in many sectors of the industry.
Software developers knew what they wanted, but many could not find it in the existing standards, so they decided to look elsewhere. What they found was proprietary persistence frameworks, both in the commercial and open source domains.
In contrast to EJB 2.x entity beans, the EJB 3.0 Java Persistence API is a metadata-driven POJO technology. That is, to save data held in Java objects into a database, our objects are not required to implement an interface, extend a class, or fit into a framework pattern.
Another key feature of JPA is the query...