You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by an...@apache.org on 2009/09/18 12:22:47 UTC
svn commit: r816575 - in /db/jdo/site: docs/jdo_v_jpa.html
xdocs/jdo_v_jpa.xml
Author: andyj
Date: Fri Sep 18 10:22:47 2009
New Revision: 816575
URL: http://svn.apache.org/viewvc?rev=816575&view=rev
Log:
Add Metadata API, query variables
Modified:
db/jdo/site/docs/jdo_v_jpa.html
db/jdo/site/xdocs/jdo_v_jpa.xml
Modified: db/jdo/site/docs/jdo_v_jpa.html
URL: http://svn.apache.org/viewvc/db/jdo/site/docs/jdo_v_jpa.html?rev=816575&r1=816574&r2=816575&view=diff
==============================================================================
--- db/jdo/site/docs/jdo_v_jpa.html (original)
+++ db/jdo/site/docs/jdo_v_jpa.html Fri Sep 18 10:22:47 2009
@@ -11,7 +11,7 @@
features of JPA1. Below we show some of the differences of these 2 standards to give you
assistance in selecting what you need. Highlighted in bold are the notable differences where one
specification provides something not available in the other.
- </p><table class="bodyTable"><tr class="a"><th width="20%">Feature</th><th width="40%">JDO2.1</th><th width="40%">JPA1</th></tr><tr class="b"><td>JDK Requirement</td><td><B>1.3+</B></td><td>1.5+</td></tr><tr class="a"><td>Usage</td><td>J2EE, J2SE</td><td>J2EE, J2SE</td></tr><tr class="b"><td>Persistence specification mechanism</td><td>MetaData, Annotations</td><td>MetaData, Annotations</td></tr><tr class="a"><td>Datastore supported</td><td><B>Any</B></td><td>RDBMS only</td></tr><tr class="b"><td>Restrictions on persisted classes</td><td><B>no-arg constructor (could be added by compiler/enhancer)</B></td><td>No final classes. No final methods. Non-private no-arg constructor. Identity Field.
+ </p><table class="bodyTable"><tr class="a"><th width="20%">Feature</th><th width="40%">JDO2.1</th><th width="40%">JPA1</th></tr><tr class="b"><td>JDK Requirement</td><td><B>1.3+</B></td><td>1.5+</td></tr><tr class="a"><td>Usage</td><td>J2EE, J2SE</td><td>J2EE, J2SE</td></tr><tr class="b"><td>Persistence specification mechanism</td><td>XML, Annotations, API</td><td>XML, Annotations</td></tr><tr class="a"><td>Datastore supported</td><td><B>Any</B></td><td>RDBMS only</td></tr><tr class="b"><td>Restrictions on persisted classes</td><td><B>no-arg constructor (could be added by compiler/enhancer)</B></td><td>No final classes. No final methods. Non-private no-arg constructor. Identity Field.
Version Field.</td></tr><tr class="a"><td>Ability to persist "transient" fields</td><td><B>Yes</B></td><td>No</td></tr><tr class="b"><td>Persist static/final fields</td><td>No</td><td>Not specified</td></tr><tr class="a"><td>Transactions</td><td><B>Pessimistic</B>, Optimistic</td><td>Optimistic</td></tr><tr class="b"><td>Object Identity</td><td><B>datastore-identity</B>, application-identity</td><td>application-identity</td></tr><tr class="a"><td>Object Identity generation</td><td>Sequence, Table, Identity, Auto, <B>UUID String, UUID Hex</B></td><td>Sequence, Table, Identity, Auto</td></tr><tr class="b"><td>Change objects identity</td><td><B>Throw exception when not allowed</B></td><td>Undefined !!</td></tr><tr class="a"><td>Supported types</td><td>Java primitive types, wrappers of primitive types, java.lang.String, <B>java.lang.Number</B>, java.math.BigInteger, java.math.BigDecimal,
<B>java.util.Currency, java.util.Locale</B>, java.util.Date, java.sql.Time, java.sql.Date, java.sql.Timestamp, java.io.Serializable,
<B>boolean[]</B>, byte[], char[], <B>double[], float[], int[], long[], short[]</B>,
@@ -25,7 +25,7 @@
java.util.Date, <B>java.util.Calendar</B>, java.sql.Date, java.sql.Time, java.sql.Timestamp, java.io.Serializable,
byte[], Byte[], char[], Character[], Enums,
java.util.Collection, java.util.Set, java.util.List, java.util.Map
- Collection/List/Map of persistable types</td></tr><tr class="b"><td>Embedded Fields</td><td>Embedded persistent objects, <B>Embedded Collections, Embedded Maps</B></td><td>Embedded persistent objects</td></tr><tr class="a"><td>Access a non-detached field</td><td><B>Throw exception</B></td><td>Undefined !!</td></tr><tr class="b"><td>Inheritance</td><td><B>Each class has its own strategy</B></td><td>Root class defines the strategy</td></tr><tr class="a"><td>Operation cascade default</td><td>persist, (delete)</td><td></td></tr><tr class="b"><td>Operation Cascade configuration</td><td>delete</td><td>persist, delete, refresh</td></tr><tr class="a"><td>Query Language</td><td>JDOQL, SQL</td><td>JPQL, SQL</td></tr><tr class="b"><td>Query candidates</td><td><B>Candidate without subclasses</B>, Candidate and its subclasses</td><td>Candidate and its subclasses</td></tr><tr class="a"><td>Query language case sensitivity</td><td>JDOQL lowercase/UPPERCASE</td><td>JP
QL case-insensitive</td></tr><tr class="b"><td>Query language aliases</td><td>Not in JDOQL</td><td>Yes in JPQL</td></tr><tr class="a"><td>Object retrieval control</td><td>Lazy loading, eager fetching, <B>fetch groups</B></td><td>Lazy loading, eager fetching</td></tr><tr class="b"><td>Bulk update/delete</td><td>JDOQL Bulk Delete</td><td>JPQL Bulk Delete, <B>JPQL Bulk Update</B></td></tr><tr class="a"><td>RDBMS Schema Control</td><td>Tables, columns, PK columns, <b>PK constraints</b>, FK columns, <b>FK constraints</b>, <b>index columns</b>,
+ Collection/List/Map of persistable types</td></tr><tr class="b"><td>Embedded Fields</td><td>Embedded persistent objects, <B>Embedded Collections, Embedded Maps</B></td><td>Embedded persistent objects</td></tr><tr class="a"><td>Access a non-detached field</td><td><B>Throw exception</B></td><td>Undefined !!</td></tr><tr class="b"><td>Inheritance</td><td><B>Each class has its own strategy</B></td><td>Root class defines the strategy</td></tr><tr class="a"><td>Operation cascade default</td><td>persist, (delete)</td><td></td></tr><tr class="b"><td>Operation Cascade configuration</td><td>delete</td><td>persist, delete, refresh</td></tr><tr class="a"><td>Query Language</td><td>JDOQL, SQL</td><td>JPQL, SQL</td></tr><tr class="b"><td>Query candidates</td><td><B>Candidate without subclasses</B>, Candidate and its subclasses</td><td>Candidate and its subclasses</td></tr><tr class="a"><td>Query language case sensitivity</td><td>JDOQL lowercase/UPPERCASE</td><td>JP
QL case-insensitive</td></tr><tr class="b"><td>Query language aliases</td><td>No aliases, but has variables in JDOQL</td><td>Yes in JPQL</td></tr><tr class="a"><td>Object retrieval control</td><td>Lazy loading, eager fetching, <B>fetch groups</B></td><td>Lazy loading, eager fetching</td></tr><tr class="b"><td>Bulk update/delete</td><td>JDOQL Bulk Delete</td><td>JPQL Bulk Delete, <B>JPQL Bulk Update</B></td></tr><tr class="a"><td>RDBMS Schema Control</td><td>Tables, columns, PK columns, <b>PK constraints</b>, FK columns, <b>FK constraints</b>, <b>index columns</b>,
<b>index constraints</b>, unique key columns, <b>unique key constraints</b></td><td>Tables, columns, PK columns, FK columns, unique key columns</td></tr><tr class="b"><td>ORM Relationships</td><td><a href="jdo_v_jpa_orm.html"><b>Full range of Collection, Map, List, Array, 1-1, 1-N, M-N using
PC, Non-PC and interface objects</b></a></td><td>Basic 1-1, 1-N, M-N only. <i>Collection<NonPC>, Map<NonPC> in JPA2</i></td></tr><tr class="a"><td>Default ORM column size</td><td>256</td><td>255</td></tr><tr class="b"><td>Default ORM identifiers (tables/columns)</td><td>No</td><td>Yes</td></tr><tr class="a"><td>Default ORM mappings</td><td>Yes, JDBC types defined for Java types</td><td>No</td></tr><tr class="b"><td>Caching interface</td><td><B>L2 Caching API</B></td><td><i>Caching API in JPA2</i></td></tr></table><p>
As an overall conclusion "JPA1" is a subset of what is already available in "JDO2".
Modified: db/jdo/site/xdocs/jdo_v_jpa.xml
URL: http://svn.apache.org/viewvc/db/jdo/site/xdocs/jdo_v_jpa.xml?rev=816575&r1=816574&r2=816575&view=diff
==============================================================================
--- db/jdo/site/xdocs/jdo_v_jpa.xml (original)
+++ db/jdo/site/xdocs/jdo_v_jpa.xml Fri Sep 18 10:22:47 2009
@@ -38,8 +38,8 @@
</tr>
<tr>
<td>Persistence specification mechanism</td>
- <td>MetaData, Annotations</td>
- <td>MetaData, Annotations</td>
+ <td>XML, Annotations, API</td>
+ <td>XML, Annotations</td>
</tr>
<tr>
<td>Datastore supported</td>
@@ -142,7 +142,7 @@
</tr>
<tr>
<td>Query language aliases</td>
- <td>Not in JDOQL</td>
+ <td>No aliases, but has variables in JDOQL</td>
<td>Yes in JPQL</td>
</tr>
<tr>