You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by he...@apache.org on 2012/11/23 01:20:37 UTC
svn commit: r1412725 - /openjpa/site/trunk/content/architecture-notes.mdtext
Author: helenxu
Date: Fri Nov 23 00:20:36 2012
New Revision: 1412725
URL: http://svn.apache.org/viewvc?rev=1412725&view=rev
Log:
CMS migration
Modified:
openjpa/site/trunk/content/architecture-notes.mdtext
Modified: openjpa/site/trunk/content/architecture-notes.mdtext
URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/architecture-notes.mdtext?rev=1412725&r1=1412724&r2=1412725&view=diff
==============================================================================
--- openjpa/site/trunk/content/architecture-notes.mdtext (original)
+++ openjpa/site/trunk/content/architecture-notes.mdtext Fri Nov 23 00:20:36 2012
@@ -7,42 +7,68 @@ the architecture
domain model: user's responsibility; other areas are OpenJPA
persistence kernel is central part
+
delegates to other stores via data cache store
+
front ends, kernel, back ends
+
query parse tree is general purpose, with several query generators
+
openjpa.kernel:
+
dirty tracking, state management, lazy loading
-only keeps track of the fact that a field has changed, not the previous
-value unless retainValues flag is set
+
+only keeps track of the fact that a field has changed, not the previous value unless retainValues flag is set
+
supports managed relationships (rectifying domain model at commit or flush)
+
two types of managed relationships (inverse vs. dependent)
-query parser written in JJTree (extension of javacc but generates AST
-Nodes)
+
+query parser written in JJTree (extension of javacc but generates AST Nodes)
+
openjpa.datacache:
-query cache might not be optimal depending on the query: if there is a rich
-fetch plan but data is already cached from a previous query
+
+query cache might not be optimal depending on the query: if there is a rich fetch plan but data is already cached from a previous query
+
openjpa.enhance:
+
now optional but performance costs
+
enhancer allows lazy loading of all fields; and dirty tracking
-lifecycle management, instance factory should be separated from dirty
-tracking and field management
+
+lifecycle management, instance factory should be separated from dirty tracking and field management
+
openjpa.meta:
+
used at enhancement time, runtime, schema generation
+
distinguishes between persistence metadata and mapping metadata
+
openjpa.persistence:
+
binding to JPA specification
+
openjpa.lib.jdbc:
+
wrappers to work around driver-specific bugs
+
BrokerFactory:
+
abstract class extended by store-specific factory
+
Broker:
Hibernate Session, JDO PersistenceManager analog
+
OpenJPAStateManager:
+
internal transient object identity is used for newly-persistent instances
+
OpenJPA also supports JDO datastore identity
-if user asks for the id, the instance is flushed to get the id if needed
-(unless not using agent)
+
+if user asks for the id, the instance is flushed to get the id if needed (unless not using agent)
+
StoreManager:
+
tight relationship with Broker, e.g. for relationship loading
-the link between Broker and StoreManager has a cache decorator to involve
-the data cache and query cache
+
+the link between Broker and StoreManager has a cache decorator to involve the data cache and query cache