Modified: incubator/openjpa/trunk/openjpa-project/src/doc/manual/jpa_overview_why.xml URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-project/src/doc/manual/jpa_overview_why.xml?rev=434517&r1=434516&r2=434517&view=diff ============================================================================== --- incubator/openjpa/trunk/openjpa-project/src/doc/manual/jpa_overview_why.xml (original) +++ incubator/openjpa/trunk/openjpa-project/src/doc/manual/jpa_overview_why.xml Thu Aug 24 13:41:12 2006 @@ -1,371 +1,665 @@ - - - Why JPA? - - JPA - why - - - Java developers who need to store and retrieve persistent - data already have several options available to them: - serialization, JDBC, JDO, proprietary object-relational mapping tools, - object databases, and EJB 2 entity beans. Why introduce yet - another persistence framework? The answer to this question is that with - the exception of JDO, each of the aforementioned persistence solutions - has severe limitations. JPA attempts to overcome these - limitations, as illustrated by the table below. - - - Persistence Mechanisms + + + Why JPA? + + + + JPA + + + why + + + +Java developers who need to store and retrieve persistent data already have +several options available to them: serialization, JDBC, JDO, proprietary +object-relational mapping tools, object databases, and EJB 2 entity beans. Why +introduce yet another persistence framework? The answer to this question is that +with the exception of JDO, each of the aforementioned persistence solutions has +severe limitations. JPA attempts to overcome these limitations, as illustrated +by the table below. + +
+ + Persistence Mechanisms + - - - - - - - - - - - Supports: - Serialization - JDBC - ORM - ODB - EJB 2 - JDO - JPA - - - - - Java Objects - - Yes - - No - - Yes - - - Yes - - - Yes - - - Yes - - - Yes - - - - Advanced OO Concepts - - Yes - - No - - Yes - - - Yes - - No - - Yes - - - Yes - - - - Transactional Integrity - No - - Yes - - - Yes - - - Yes - - - Yes - - - Yes - - - Yes - - - - Concurrency - No - - Yes - - - Yes - - - Yes - - - Yes - - - Yes - - - Yes - - - - Large Data Sets - No - - Yes - - - Yes - - - Yes - - - Yes - - - Yes - - - Yes - - - - Existing Schema - No - - Yes - - - Yes - - No - - Yes - - - Yes - - - Yes - - - - + + + + + + + + + + + + + + + + + + + + Supports: + + + Serialization + + + JDBC + + + ORM + + + ODB + + + EJB 2 + + + JDO + + + JPA + + + + + + + Java Objects + + + + Yes + + + + No + + + + Yes + + + + + Yes + + + + + Yes + + + + + Yes + + + + + Yes + + + + + + Advanced OO Concepts + + + + Yes + + + + No + + + + Yes + + + + + Yes + + + + No + + + + Yes + + + + + Yes + + + + + + Transactional Integrity + + + No + + + + Yes + + + + + Yes + + + + + Yes + + + + + Yes + + + + + Yes + + + + + Yes + + + + + + Concurrency + + + No + + + + Yes + + + + + Yes + + + + + Yes + + + + + Yes + + + + + Yes + + + + + Yes + + + + + + Large Data Sets + + + No + + + + Yes + + + + + Yes + + + + + Yes + + + + + Yes + + + + + Yes + + + + + Yes + + + + + + Existing Schema + + + No + + + + Yes + + + + + Yes + + + + No + + + + Yes + + + + + Yes + + + + + Yes + + + + + + Relational and Non-Relational Stores - - No - No - No - No - - Yes - - - Yes - - No - - - Queries - No - - Yes - - - Yes - - - Yes - - - Yes - - - Yes - - - Yes - - - - Strict Standards / Portability - - Yes - - No - No - No - - Yes - - - Yes - - - Yes - - - - Simplicity - - Yes - - - Yes - - - Yes - - - Yes - - No - - Yes - - - Yes - - - + + + + No + + + No + + + No + + + No + + + + Yes + + + + + Yes + + + + No + + + + + Queries + + + No + + + + Yes + + + + + Yes + + + + + Yes + + + + + Yes + + + + + Yes + + + + + Yes + + + + + + Strict Standards / Portability + + + + Yes + + + + No + + + No + + + No + + + + Yes + + + + + Yes + + + + + Yes + + + + + + Simplicity + + + + Yes + + + + + Yes + + + + + Yes + + + + + Yes + + + + No + + + + Yes + + + + + Yes + + + + -
- + + - serializationJPAvs serializationSerialization is Java's - built-in mechanism for transforming an object graph into a - series of bytes, which can then be sent over the network or - stored in a file. Serialization is very easy to use, - but it is also very limited. It must store and retrieve the - entire object graph at once, making it unsuitable for - dealing with large amounts of data. It cannot undo changes - that are made to objects if an error occurs while updating - information, making it unsuitable for applications that - require strict data integrity. Multiple threads or programs - cannot read and write the same serialized data concurrently - without conflicting with each other. It provides no query - capabilities. All these factors make serialization useless - for all but the most trivial persistence needs. - + + + + serialization + + + + + JPA + + + vs serialization + + +Serialization is Java's built-in mechanism for transforming +an object graph into a series of bytes, which can then be sent over the network +or stored in a file. Serialization is very easy to use, but it is also very +limited. It must store and retrieve the entire object graph at once, making it +unsuitable for dealing with large amounts of data. It cannot undo changes that +are made to objects if an error occurs while updating information, making it +unsuitable for applications that require strict data integrity. Multiple threads +or programs cannot read and write the same serialized data concurrently without +conflicting with each other. It provides no query capabilities. All these +factors make serialization useless for all but the most trivial persistence +needs. + - Java Database ConnectivityJDBCJDBCJPAvs JDBC - Many developers use the - Java Database Connectivity (JDBC) APIs to - manipulate persistent data in relational databases. JDBC - overcomes most of the shortcomings of serialization: - it can handle large amounts of data, has mechanisms to ensure - data integrity, supports concurrent access to information, and - has a sophisticated query language in SQL. Unfortunately, JDBC - does not duplicate serialization's ease of use. The relational - paradigm used by JDBC was not designed for storing objects, - and therefore forces you to either abandon - object-oriented programming for the portions of your code - that deal with persistent data, or to find a way of mapping - object-oriented concepts like inheritance to relational - databases yourself. - + + + + Java Database Connectivity + + + JDBC + + + + + JDBC + + + + + JPA + + + vs JDBC + + +Many developers use the Java Database Connectivity (JDBC) +APIs to manipulate persistent data in relational databases. JDBC overcomes most +of the shortcomings of serialization: it can handle large amounts of data, has +mechanisms to ensure data integrity, supports concurrent access to information, +and has a sophisticated query language in SQL. Unfortunately, JDBC does not +duplicate serialization's ease of use. The relational paradigm used by JDBC was +not designed for storing objects, and therefore forces you to either abandon +object-oriented programming for the portions of your code that deal with +persistent data, or to find a way of mapping object-oriented concepts like +inheritance to relational databases yourself. + - object-relational mappingORMORMJPAvs ORM products - There are many proprietary software products that can perform the - mapping between objects and relational database tables for you. - These object-relational mapping (ORM) - frameworks allow you to focus on the object model and not concern - yourself with the mismatch between - the object-oriented and relational paradigms. Unfortunately, - each of these product has its own set of APIs. - Your code becomes tied to the proprietary interfaces of a single - vendor. If the vendor raises prices, fails to fix show-stopping - bugs, or falls behind in features, you cannot switch to another - product without rewriting all of your persistence code. This is - referred to as vendor lock-in. - + + + + object-relational mapping + + + ORM + + + + + ORM + + + + + JPA + + + vs ORM products + + +There are many proprietary software products that can perform the mapping +between objects and relational database tables for you. These +object-relational mapping (ORM) frameworks allow you to focus on the +object model and not concern yourself with the mismatch between the +object-oriented and relational paradigms. Unfortunately, each of these product +has its own set of APIs. Your code becomes tied to the proprietary interfaces of +a single vendor. If the vendor raises prices, fails to fix show-stopping bugs, +or falls behind in features, you cannot switch to another product without +rewriting all of your persistence code. This is referred to as vendor lock-in. + - object databaseODBODBJPAvs ODBsODBMG - Rather than map objects to relational databases, some software - companies have developed a form of database designed - specifically to store objects. These - object databases (ODBs) are often much - easier to use than object-relational mapping software. - The Object Database Management Group (ODMG) was formed to create - a standard API for accessing object databases; few object - database vendors, however, comply with the ODMG's - recommendations. Thus, vendor lock-in plagues object databases - as well. Many companies are also hesitant to switch from - tried-and-true relational systems to the relatively unknown object - database technology. Fewer data-analysis tools are available - for object database systems, and there are vast quantities of - data already stored in older relational databases. For all of - these reasons and more, object databases have not caught on - as well as their creators hoped. - + + + + object database + + + ODB + + + + + ODB + + + + + JPA + + + vs ODBs + + + + + ODBMG + + +Rather than map objects to relational databases, some software companies have +developed a form of database designed specifically to store objects. These +object databases (ODBs) are often much easier to use than +object-relational mapping software. The Object Database Management Group (ODMG) +was formed to create a standard API for accessing object databases; few object +database vendors, however, comply with the ODMG's recommendations. Thus, vendor +lock-in plagues object databases as well. Many companies are also hesitant to +switch from tried-and-true relational systems to the relatively unknown object +database technology. Fewer data-analysis tools are available for object database +systems, and there are vast quantities of data already stored in older +relational databases. For all of these reasons and more, object databases have +not caught on as well as their creators hoped. + - Enterprise Java BeansEJBEJBJPAvs EJB 2 - The Enterprise Edition of the Java platform introduced entity - Enterprise Java Beans (EJBs). EJB 2.x entities are components that - represent persistent information in a datastore. Like - object-relational mapping solutions, EJB 2.x entities provide - an object-oriented view of persistent data. Unlike - object-relational software, however, EJB 2.x entities are not - limited to relational databases; the persistent information they - represent may come from an Enterprise Information System (EIS) or - other storage device. Also, EJB 2.x entities use a strict standard, - making them portable across vendors. Unfortunately, the EJB 2.x - standard is somewhat limited in the object-oriented concepts it can - represent. Advanced features like inheritance, polymorphism, and - complex relations are absent. Additionally, EBJ 2.x entities are - difficult to code, and they require heavyweight and often expensive - application servers to run. - + + + + Enterprise Java Beans + + + EJB + + + + + EJB + + + + + JPA + + + vs EJB 2 + + +The Enterprise Edition of the Java platform introduced entity Enterprise Java +Beans (EJBs). EJB 2.x entities are components that represent persistent +information in a datastore. Like object-relational mapping solutions, EJB 2.x +entities provide an object-oriented view of persistent data. Unlike +object-relational software, however, EJB 2.x entities are not limited to +relational databases; the persistent information they represent may come from an +Enterprise Information System (EIS) or other storage device. Also, EJB 2.x +entities use a strict standard, making them portable across vendors. +Unfortunately, the EJB 2.x standard is somewhat limited in the object-oriented +concepts it can represent. Advanced features like inheritance, polymorphism, and +complex relations are absent. Additionally, EBJ 2.x entities are difficult to +code, and they require heavyweight and often expensive application servers to +run. + - JDOJPAvs JDO - The JDO specification uses an API that is strikingly similar to - JPA. JDO, however, supports non-relational databases, - a feature that some argue dilutes the specification. - + + + + JDO + + + + + JPA + + + vs JDO + + +The JDO specification uses an API that is strikingly similar to JPA. JDO, +however, supports non-relational databases, a feature that some argue dilutes +the specification. + - - JPA - JPA combines the best features from each of the persistence - mechanisms listed above. Creating entities under JPA - is as simple as creating serializable classes. JPA supports the - large data sets, data consistency, concurrent use, and query capabilities of - JDBC. Like object-relational software and object databases, JPA - allows the use of advanced object-oriented concepts such as inheritance. - JPA avoids vendor lock-in by relying on a strict specification - like JDO and EJB 2.x entities. JPA focuses on relational - databases. And like JDO, JPA is extremely easy to use. - - + + + + + JPA + + +JPA combines the best features from each of the persistence mechanisms listed +above. Creating entities under JPA is as simple as creating serializable +classes. JPA supports the large data sets, data consistency, concurrent use, and +query capabilities of JDBC. Like object-relational software and object +databases, JPA allows the use of advanced object-oriented concepts such as +inheritance. JPA avoids vendor lock-in by relying on a strict specification like +JDO and EJB 2.x entities. JPA focuses on relational databases. And like JDO, JPA +is extremely easy to use. + + - OpenJPA typically stores data in relational databases, but can be - customized for use with non-relational datastores as well. +OpenJPA typically stores data in relational databases, but can be customized for +use with non-relational datastores as well. + + + +JPA is not ideal for every application. For many applications, though, it +provides an exciting alternative to other persistence mechanisms. - - - JPA is not ideal for every application. For many applications, - though, it provides an exciting alternative to other persistence mechanisms. - -
+ Modified: incubator/openjpa/trunk/openjpa-project/src/doc/manual/jpa_resources.xml URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-project/src/doc/manual/jpa_resources.xml?rev=434517&r1=434516&r2=434517&view=diff ============================================================================== --- incubator/openjpa/trunk/openjpa-project/src/doc/manual/jpa_resources.xml (original) +++ incubator/openjpa/trunk/openjpa-project/src/doc/manual/jpa_resources.xml Thu Aug 24 13:41:12 2006 @@ -1,39 +1,39 @@ - - - JPA Resources + + + JPA Resources + - - - - EJB 3 JSR page - - - - - Sun EJB page - - - - - Locally mirrored - javax.persistence Javadoc - - - - - OpenJPA API Javadoc - - - - - Full OpenJPA Javadoc - - - - - Locally mirrored JPA - specification - - + + + +EJB 3 JSR page + + + + +Sun EJB page + + + + +Locally mirrored +javax.persistence Javadoc + + + + +OpenJPA API Javadoc + + + + +Full OpenJPA Javadoc + + + + +Locally mirrored JPA specification + + - +