You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by bu...@apache.org on 2014/01/05 17:20:02 UTC
svn commit: r892870 [3/6] - in /websites/staging/cayenne/trunk/content: ./
2011/03/08/ dev/ docs/3.1/cayenne-guide/ docs/3.1/cayenne-guide/images/
docs/3.1/tutorial-rop/ docs/3.1/tutorial-rop/images/ docs/3.1/tutorial/
docs/3.1/tutorial/images/ docs/3....
Modified: websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/index.html
==============================================================================
--- websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/index.html (original)
+++ websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/index.html Sun Jan 5 16:20:01 2014
@@ -1,6 +1,6 @@
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title xmlns:d="http://docbook.org/ns/docbook">Cayenne Guide</title><link rel="stylesheet" type="text/css" href="css/cayenne-doc.css"><meta xmlns:d="http://docbook.org/ns/docbook" name="keywords" content="Cayenne 3.1B3-SNAPSHOT documentation"><meta xmlns:d="http://docbook.org/ns/docbook" name="description" content="User documentation for Apache Cayenne version 3.1B3-SNAPSHOT"><link rel="home" href="index.html" title="Cayenne Guide"><link rel="next" href="cayenne-guide-part1.html" title="Part I. Object Relational Mapping with Cayenne"><script xmlns:d="http://docbook.org/ns/docbook" type="text/javascript">
+ <title xmlns:d="http://docbook.org/ns/docbook">Cayenne Guide</title><link rel="stylesheet" type="text/css" href="css/cayenne-doc.css"><meta xmlns:d="http://docbook.org/ns/docbook" name="keywords" content="Cayenne 3.2 documentation"><meta xmlns:d="http://docbook.org/ns/docbook" name="description" content="User documentation for Apache Cayenne version 3.2"><link rel="home" href="index.html" title="Cayenne Guide"><link rel="next" href="cayenne-guide-part1.html" title="Part I. Object Relational Mapping with Cayenne"><script xmlns:d="http://docbook.org/ns/docbook" type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-7036673-1']);
_gaq.push(['_trackPageview']);
@@ -9,7 +9,7 @@
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
- </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div xmlns:d="http://docbook.org/ns/docbook" class="navheader"><table width="100%" summary="Navigation header"><tr><th class="versioninfo">v.3.1B3-SNAPSHOT</th><th align="center">Cayenne Guide</th><th></th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="cayenne-guide-part1.html">Next</a></td></tr></table><hr></div><div class="book" title="Cayenne Guide"><div class="titlepage"><div><div><h1 class="title"><a name="cayenne-guide"></a>Cayenne Guide</h1></div><div><p class="copyright">Copyright © 2011-2012 Apache Software Foundation and individual authors</p></div><div><div class="legalnotice" title="License"><a name="d0e10"></a><p class="legalnotice-title"><b>License</b></p><p>Licensed to the Apache Software Foundation (ASF) under one or more contributor
+ </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div xmlns:d="http://docbook.org/ns/docbook" class="navheader"><table width="100%" summary="Navigation header"><tr><th class="versioninfo">v.3.2 (3.1B3-SNAPSHOT)</th><th align="center">Cayenne Guide</th><th></th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="cayenne-guide-part1.html">Next</a></td></tr></table><hr></div><div class="book" title="Cayenne Guide"><div class="titlepage"><div><div><h1 class="title"><a name="cayenne-guide"></a>Cayenne Guide</h1></div><div><p class="copyright">Copyright © 2011-2014 Apache Software Foundation and individual authors</p></div><div><div class="legalnotice" title="License"><a name="d0e11"></a><p class="legalnotice-title"><b>License</b></p><p>Licensed to the Apache Software Foundation (ASF) under one or more contributor
license agreements. See the NOTICE file distributed with this work for additional
information regarding copyright ownership. The ASF licenses this file to you under
the Apache License, Version 2.0 (the "License"); you may not use this file except in
@@ -17,4 +17,4 @@
http://www.apache.org/licenses/LICENSE-2.0</p><p>Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
- language governing permissions and limitations under the License.</p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="part"><a href="cayenne-guide-part1.html">I. Object Relational Mapping with Cayenne</a></span></dt><dd><dl><dt><span class="chapter"><a href="setup.html">1. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="setup.html#system-requirements">System Requirements</a></span></dt><dt><span class="section"><a href="setup.html#running-cayennemodeler">Running CayenneModeler</a></span></dt></dl></dd><dt><span class="chapter"><a href="cayenne-mapping-structure.html">2. Cayenne Mapping Structure</a></span></dt><dd><dl><dt><span class="section"><a href="cayenne-mapping-structure.html#cayenne-project">Cayenne Project</a></span></dt><dt><span class="section"><a href="cayenne-mapping-structure.html#datamap">DataMap</a></span></dt><dt><span class="section"><a href="cayenne-mapping-structure.html#datanode">Dat
aNode</a></span></dt><dt><span class="section"><a href="cayenne-mapping-structure.html#dbentity">DbEntity</a></span></dt><dt><span class="section"><a href="cayenne-mapping-structure.html#objentity">ObjEntity</a></span></dt><dt><span class="section"><a href="cayenne-mapping-structure.html#embeddable">Embeddable</a></span></dt><dt><span class="section"><a href="cayenne-mapping-structure.html#procedure">Procedure</a></span></dt><dt><span class="section"><a href="cayenne-mapping-structure.html#query">Query</a></span></dt><dt><span class="section"><a href="cayenne-mapping-structure.html#listeners-and-callbacks">Listeners and Callbacks</a></span></dt></dl></dd><dt><span class="chapter"><a href="cayennemodeler-application.html">3. CayenneModeler Application</a></span></dt><dd><dl><dt><span class="section"><a href="cayennemodeler-application.html#working-with-mapping-projects">Working with Mapping Projects</a></span></dt><dt><span class="section"><a href="cayennemodeler-application.html#rev
erse-engineering-database">Reverse Engineering Database</a></span></dt><dt><span class="section"><a href="cayennemodeler-application.html#generating-database-schema">Generating Database Schema</a></span></dt><dt><span class="section"><a href="cayennemodeler-application.html#migrations">Migrations</a></span></dt><dt><span class="section"><a href="cayennemodeler-application.html#generating-java-classes">Generating Java Classes</a></span></dt><dt><span class="section"><a href="cayennemodeler-application.html#modeling-inheritance">Modeling Inheritance</a></span></dt><dt><span class="section"><a href="cayennemodeler-application.html#modeling-generic-persistence-classes">Modeling Generic Persistent Classes</a></span></dt><dt><span class="section"><a href="cayennemodeler-application.html#modeling-pk-generation-strategy">Modeling Primary Key Generation Strategy</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="cayenne-guide-part2.html">II. Cayenne Framework</a></span></dt><
dd><dl><dt><span class="chapter"><a href="including-cayenne-in-project.html">4. Including Cayenne in a Project</a></span></dt><dd><dl><dt><span class="section"><a href="including-cayenne-in-project.html#jar-files-and-depdendencies">Jar Files and Dependencies</a></span></dt><dt><span class="section"><a href="including-cayenne-in-project.html#maven-projects">Maven Projects</a></span></dt><dt><span class="section"><a href="including-cayenne-in-project.html#ant-projects">Ant Projects</a></span></dt></dl></dd><dt><span class="chapter"><a href="starting-cayenne.html">5. Starting Cayenne</a></span></dt><dd><dl><dt><span class="section"><a href="starting-cayenne.html#starting-serverruntime">Starting and Stopping ServerRuntime</a></span></dt><dt><span class="section"><a href="starting-cayenne.html#d0e919">Merging Multiple Projects</a></span></dt><dt><span class="section"><a href="starting-cayenne.html#webapps">Web Applications</a></span></dt></dl></dd><dt><span class="chapter"><a href="persi
stent-objects-objectcontext.html">6. Persistent Objects and ObjectContext</a></span></dt><dd><dl><dt><span class="section"><a href="persistent-objects-objectcontext.html#objectcontext">ObjectContext</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#persistent-lifecycle">Persistent Object and its Lifecycle</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#persistent-operations">ObjectContext Persistence API</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#cayenne-helper-class">Cayenne Helper Class</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#objectcontext-nesting">ObjectContext Nesting</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#generic-persistent-objects">Generic Persistent Objects</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#transactions">Tr
ansactions</a></span></dt></dl></dd><dt><span class="chapter"><a href="expressions.html">7. Expressions</a></span></dt><dd><dl><dt><span class="section"><a href="expressions.html#expressions-overview">Expressions Overview</a></span></dt><dt><span class="section"><a href="expressions.html#path-expressions">Path Expressions</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-from-strings">Creating Expressions from Strings </a></span></dt><dt><span class="section"><a href="expressions.html#expressions-with-expressionfactory">Creating Expressions with API</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-in-memory">Evaluating Expressions in Memory</a></span></dt></dl></dd><dt><span class="chapter"><a href="orderings.html">8. Orderings</a></span></dt><dt><span class="chapter"><a href="queries.html">9. Queries</a></span></dt><dd><dl><dt><span class="section"><a href="queries.html#selectquery">SelectQuery</a></span></dt><dt><span clas
s="section"><a href="queries.html#ejbqlquery">EJBQLQuery</a></span></dt><dt><span class="section"><a href="queries.html#sqltemplate">SQLTemplate</a></span></dt><dt><span class="section"><a href="queries.html#procedurequery">ProcedureQuery</a></span></dt><dt><span class="section"><a href="queries.html#namedquery">NamedQuery</a></span></dt><dt><span class="section"><a href="queries.html#custom-queries">Custom Queries</a></span></dt></dl></dd><dt><span class="chapter"><a href="lifecycle-events.html">10. Lifecycle Events</a></span></dt><dd><dl><dt><span class="section"><a href="lifecycle-events.html#types-of-lifecycle-events">Types of Lifecycle Events</a></span></dt><dt><span class="section"><a href="lifecycle-events.html#callback-persistent">Callbacks on Persistent Objects</a></span></dt><dt><span class="section"><a href="lifecycle-events.html#callback-non-persistent">Callbacks on Non-Persistent Listeners</a></span></dt><dt><span class="section"><a href="lifecycle-events.html#comining-
listeners-with-datachannelfilters">Combining Listeners with DataChannelFilters</a></span></dt></dl></dd><dt><span class="chapter"><a href="performance-tuning.html">11. Performance Tuning</a></span></dt><dd><dl><dt><span class="section"><a href="performance-tuning.html#prefetching">Prefetching</a></span></dt><dt><span class="section"><a href="performance-tuning.html#datarows">Data Rows</a></span></dt><dt><span class="section"><a href="performance-tuning.html#iterated-queries">Iterated Queries</a></span></dt><dt><span class="section"><a href="performance-tuning.html#paginated-queries">Paginated Queries</a></span></dt><dt><span class="section"><a href="performance-tuning.html#caching-and-fresh-data">Caching and Fresh Data</a></span></dt><dt><span class="section"><a href="performance-tuning.html#turning-off-synchronization-of-objectcontexts">Turning off Synchronization of ObjectContexts</a></span></dt></dl></dd><dt><span class="chapter"><a href="customizing-cayenne-runtime.html">12. Cus
tomizing Cayenne Runtime</a></span></dt><dd><dl><dt><span class="section"><a href="customizing-cayenne-runtime.html#depdendency-injection-container">Dependency Injection Container</a></span></dt><dt><span class="section"><a href="customizing-cayenne-runtime.html#ways-to-customize-runtime"> Customization Strategies</a></span></dt><dt><span class="section"><a href="customizing-cayenne-runtime.html#noteworthy-runtime-components">Noteworthy Built-in Services</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="cayenne-guide-part3.html">III. Cayenne Framework - Remote Object Persistence </a></span></dt><dd><dl><dt><span class="chapter"><a href="introduction-to-rop.html">13. Introduction to ROP</a></span></dt><dd><dl><dt><span class="section"><a href="introduction-to-rop.html#what-is-rop">What is ROP</a></span></dt><dt><span class="section"><a href="introduction-to-rop.html#main-features">Main Features</a></span></dt></dl></dd><dt><span class="chapter"><a href="rop-setup.htm
l">14. ROP Setup</a></span></dt><dd><dl><dt><span class="section"><a href="rop-setup.html#rop-system-requirements">System Requirements</a></span></dt><dt><span class="section"><a href="rop-setup.html#rop-jar-files-dependencies">Jar Files and Dependencies</a></span></dt></dl></dd><dt><span class="chapter"><a href="implementing-rop-server.html">15. Implementing ROP Server</a></span></dt><dt><span class="chapter"><a href="implementing-rop-client.html">16. Implementing ROP Client</a></span></dt><dt><span class="chapter"><a href="rop-deployment.html">17. ROP Deployment</a></span></dt><dd><dl><dt><span class="section"><a href="rop-deployment.html#deploying-rop-server">Deploying ROP Server</a></span></dt><dt><span class="section"><a href="rop-deployment.html#deploying-rop-client">Deploying ROP Client</a></span></dt><dt><span class="section"><a href="rop-deployment.html#rop-security">Security</a></span></dt></dl></dd><dt><span class="chapter"><a href="current-limitations.html">18. Current L
imitations</a></span></dt></dl></dd><dt><span class="appendix"><a href="server-configuration-properties.html">A. Configuration Properties</a></span></dt><dt><span class="appendix"><a href="client-configuration-properties.html">B. Service Collections</a></span></dt><dt><span class="appendix"><a href="expressions-bnf.html">C. Expressions BNF</a></span></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>4.1. <a href="including-cayenne-in-project.html#d0e226">cgen required parameters</a></dt><dt>4.2. <a href="including-cayenne-in-project.html#d0e273">cgen optional parameters</a></dt><dt>4.3. <a href="including-cayenne-in-project.html#d0e474">cdbgen required parameters</a></dt><dt>4.4. <a href="including-cayenne-in-project.html#d0e534">cdbgen optional parameters</a></dt><dt>4.5. <a href="including-cayenne-in-project.html#d0e665">cdbimport required parameters</a></dt><dt>4.6. <a href="including-cayenne-in-project.html#d0e725">cdbimport optional parameters</a></
dt><dt>6.1. <a href="persistent-objects-objectcontext.html#d0e1017">Persistence States</a></dt><dt>10.1. <a href="lifecycle-events.html#d0e1904">Lifecycle Event Types</a></dt><dt>A.1. <a href="server-configuration-properties.html#d0e2534">Configuration Properties Recognized by ServerRuntime and/or ClientRuntime</a></dt><dt>B.1. <a href="client-configuration-properties.html#d0e2794">Service Collection Keys Present in ServerRuntime and/or ClientRuntime</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="cayenne-guide-part1.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Part I. Object Relational Mapping with Cayenne</td></tr></table></div></body></html>
\ No newline at end of file
+ language governing permissions and limitations under the License.</p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="part"><a href="cayenne-guide-part1.html">I. Object Relational Mapping with Cayenne</a></span></dt><dd><dl><dt><span class="chapter"><a href="setup.html">1. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="setup.html#system-requirements">System Requirements</a></span></dt><dt><span class="section"><a href="setup.html#running-cayennemodeler">Running CayenneModeler</a></span></dt></dl></dd><dt><span class="chapter"><a href="cayenne-mapping-structure.html">2. Cayenne Mapping Structure</a></span></dt><dd><dl><dt><span class="section"><a href="cayenne-mapping-structure.html#cayenne-project">Cayenne Project</a></span></dt><dt><span class="section"><a href="cayenne-mapping-structure.html#datamap">DataMap</a></span></dt><dt><span class="section"><a href="cayenne-mapping-structure.html#datanode">Dat
aNode</a></span></dt><dt><span class="section"><a href="cayenne-mapping-structure.html#dbentity">DbEntity</a></span></dt><dt><span class="section"><a href="cayenne-mapping-structure.html#objentity">ObjEntity</a></span></dt><dt><span class="section"><a href="cayenne-mapping-structure.html#embeddable">Embeddable</a></span></dt><dt><span class="section"><a href="cayenne-mapping-structure.html#procedure">Procedure</a></span></dt><dt><span class="section"><a href="cayenne-mapping-structure.html#query">Query</a></span></dt><dt><span class="section"><a href="cayenne-mapping-structure.html#listeners-and-callbacks">Listeners and Callbacks</a></span></dt></dl></dd><dt><span class="chapter"><a href="cayennemodeler-application.html">3. CayenneModeler Application</a></span></dt><dd><dl><dt><span class="section"><a href="cayennemodeler-application.html#working-with-mapping-projects">Working with Mapping Projects</a></span></dt><dt><span class="section"><a href="cayennemodeler-application.html#rev
erse-engineering-database">Reverse Engineering Database</a></span></dt><dt><span class="section"><a href="cayennemodeler-application.html#generating-database-schema">Generating Database Schema</a></span></dt><dt><span class="section"><a href="cayennemodeler-application.html#migrations">Migrations</a></span></dt><dt><span class="section"><a href="cayennemodeler-application.html#generating-java-classes">Generating Java Classes</a></span></dt><dt><span class="section"><a href="cayennemodeler-application.html#modeling-inheritance">Modeling Inheritance</a></span></dt><dt><span class="section"><a href="cayennemodeler-application.html#modeling-generic-persistence-classes">Modeling Generic Persistent Classes</a></span></dt><dt><span class="section"><a href="cayennemodeler-application.html#modeling-pk-generation-strategy">Modeling Primary Key Generation Strategy</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="cayenne-guide-part2.html">II. Cayenne Framework</a></span></dt><
dd><dl><dt><span class="chapter"><a href="including-cayenne-in-project.html">4. Including Cayenne in a Project</a></span></dt><dd><dl><dt><span class="section"><a href="including-cayenne-in-project.html#jar-files-and-depdendencies">Jar Files and Dependencies</a></span></dt><dt><span class="section"><a href="including-cayenne-in-project.html#maven-projects">Maven Projects</a></span></dt><dt><span class="section"><a href="including-cayenne-in-project.html#ant-projects">Ant Projects</a></span></dt></dl></dd><dt><span class="chapter"><a href="starting-cayenne.html">5. Starting Cayenne</a></span></dt><dd><dl><dt><span class="section"><a href="starting-cayenne.html#starting-serverruntime">Starting and Stopping ServerRuntime</a></span></dt><dt><span class="section"><a href="starting-cayenne.html#d0e927">Merging Multiple Projects</a></span></dt><dt><span class="section"><a href="starting-cayenne.html#webapps">Web Applications</a></span></dt></dl></dd><dt><span class="chapter"><a href="persi
stent-objects-objectcontext.html">6. Persistent Objects and ObjectContext</a></span></dt><dd><dl><dt><span class="section"><a href="persistent-objects-objectcontext.html#objectcontext">ObjectContext</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#persistent-lifecycle">Persistent Object and its Lifecycle</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#persistent-operations">ObjectContext Persistence API</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#cayenne-helper-class">Cayenne Helper Class</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#objectcontext-nesting">ObjectContext Nesting</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#generic-persistent-objects">Generic Persistent Objects</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#transactions">Tr
ansactions</a></span></dt></dl></dd><dt><span class="chapter"><a href="expressions.html">7. Expressions</a></span></dt><dd><dl><dt><span class="section"><a href="expressions.html#expressions-overview">Expressions Overview</a></span></dt><dt><span class="section"><a href="expressions.html#path-expressions">Path Expressions</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-from-strings">Creating Expressions from Strings </a></span></dt><dt><span class="section"><a href="expressions.html#expressions-with-expressionfactory">Creating Expressions with API</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-in-memory">Evaluating Expressions in Memory</a></span></dt></dl></dd><dt><span class="chapter"><a href="orderings.html">8. Orderings</a></span></dt><dt><span class="chapter"><a href="queries.html">9. Queries</a></span></dt><dd><dl><dt><span class="section"><a href="queries.html#selectquery">SelectQuery</a></span></dt><dt><span clas
s="section"><a href="queries.html#ejbqlquery">EJBQLQuery</a></span></dt><dt><span class="section"><a href="queries.html#sqltemplate">SQLTemplate</a></span></dt><dt><span class="section"><a href="queries.html#procedurequery">ProcedureQuery</a></span></dt><dt><span class="section"><a href="queries.html#namedquery">NamedQuery</a></span></dt><dt><span class="section"><a href="queries.html#custom-queries">Custom Queries</a></span></dt></dl></dd><dt><span class="chapter"><a href="lifecycle-events.html">10. Lifecycle Events</a></span></dt><dd><dl><dt><span class="section"><a href="lifecycle-events.html#types-of-lifecycle-events">Types of Lifecycle Events</a></span></dt><dt><span class="section"><a href="lifecycle-events.html#callback-persistent">Callbacks on Persistent Objects</a></span></dt><dt><span class="section"><a href="lifecycle-events.html#callback-non-persistent">Callbacks on Non-Persistent Listeners</a></span></dt><dt><span class="section"><a href="lifecycle-events.html#comining-
listeners-with-datachannelfilters">Combining Listeners with DataChannelFilters</a></span></dt></dl></dd><dt><span class="chapter"><a href="performance-tuning.html">11. Performance Tuning</a></span></dt><dd><dl><dt><span class="section"><a href="performance-tuning.html#prefetching">Prefetching</a></span></dt><dt><span class="section"><a href="performance-tuning.html#datarows">Data Rows</a></span></dt><dt><span class="section"><a href="performance-tuning.html#iterated-queries">Iterated Queries</a></span></dt><dt><span class="section"><a href="performance-tuning.html#paginated-queries">Paginated Queries</a></span></dt><dt><span class="section"><a href="performance-tuning.html#caching-and-fresh-data">Caching and Fresh Data</a></span></dt><dt><span class="section"><a href="performance-tuning.html#turning-off-synchronization-of-objectcontexts">Turning off Synchronization of ObjectContexts</a></span></dt></dl></dd><dt><span class="chapter"><a href="customizing-cayenne-runtime.html">12. Cus
tomizing Cayenne Runtime</a></span></dt><dd><dl><dt><span class="section"><a href="customizing-cayenne-runtime.html#depdendency-injection-container">Dependency Injection Container</a></span></dt><dt><span class="section"><a href="customizing-cayenne-runtime.html#ways-to-customize-runtime"> Customization Strategies</a></span></dt><dt><span class="section"><a href="customizing-cayenne-runtime.html#noteworthy-runtime-components">Noteworthy Built-in Services</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="cayenne-guide-part3.html">III. Cayenne Framework - Remote Object Persistence </a></span></dt><dd><dl><dt><span class="chapter"><a href="introduction-to-rop.html">13. Introduction to ROP</a></span></dt><dd><dl><dt><span class="section"><a href="introduction-to-rop.html#what-is-rop">What is ROP</a></span></dt><dt><span class="section"><a href="introduction-to-rop.html#main-features">Main Features</a></span></dt></dl></dd><dt><span class="chapter"><a href="rop-setup.htm
l">14. ROP Setup</a></span></dt><dd><dl><dt><span class="section"><a href="rop-setup.html#rop-system-requirements">System Requirements</a></span></dt><dt><span class="section"><a href="rop-setup.html#rop-jar-files-dependencies">Jar Files and Dependencies</a></span></dt></dl></dd><dt><span class="chapter"><a href="implementing-rop-server.html">15. Implementing ROP Server</a></span></dt><dt><span class="chapter"><a href="implementing-rop-client.html">16. Implementing ROP Client</a></span></dt><dt><span class="chapter"><a href="rop-deployment.html">17. ROP Deployment</a></span></dt><dd><dl><dt><span class="section"><a href="rop-deployment.html#deploying-rop-server">Deploying ROP Server</a></span></dt><dt><span class="section"><a href="rop-deployment.html#deploying-rop-client">Deploying ROP Client</a></span></dt><dt><span class="section"><a href="rop-deployment.html#rop-security">Security</a></span></dt></dl></dd><dt><span class="chapter"><a href="current-limitations.html">18. Current L
imitations</a></span></dt></dl></dd><dt><span class="appendix"><a href="configuration-properties.html">A. Configuration Properties</a></span></dt><dt><span class="appendix"><a href="service-collections.html">B. Service Collections</a></span></dt><dt><span class="appendix"><a href="expressions-bnf.html">C. Expressions BNF</a></span></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>4.1. <a href="including-cayenne-in-project.html#d0e233">cgen required parameters</a></dt><dt>4.2. <a href="including-cayenne-in-project.html#d0e280">cgen optional parameters</a></dt><dt>4.3. <a href="including-cayenne-in-project.html#d0e481">cdbgen required parameters</a></dt><dt>4.4. <a href="including-cayenne-in-project.html#d0e541">cdbgen optional parameters</a></dt><dt>4.5. <a href="including-cayenne-in-project.html#d0e672">cdbimport required parameters</a></dt><dt>4.6. <a href="including-cayenne-in-project.html#d0e732">cdbimport optional parameters</a></dt><dt>6.1. <a href
="persistent-objects-objectcontext.html#d0e1026">Persistence States</a></dt><dt>10.1. <a href="lifecycle-events.html#d0e1917">Lifecycle Event Types</a></dt><dt>A.1. <a href="configuration-properties.html#d0e2609">Configuration Properties Recognized by ServerRuntime and/or ClientRuntime</a></dt><dt>B.1. <a href="service-collections.html#d0e2870">Service Collection Keys Present in ServerRuntime and/or ClientRuntime</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="cayenne-guide-part1.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Part I. Object Relational Mapping with Cayenne</td></tr></table></div></body></html>
\ No newline at end of file
Modified: websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/introduction-to-rop.html
==============================================================================
--- websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/introduction-to-rop.html (original)
+++ websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/introduction-to-rop.html Sun Jan 5 16:20:01 2014
@@ -1,6 +1,6 @@
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title xmlns:d="http://docbook.org/ns/docbook">Chapter 13. Introduction to ROP</title><link rel="stylesheet" type="text/css" href="css/cayenne-doc.css"><meta xmlns:d="http://docbook.org/ns/docbook" name="keywords" content="Cayenne 3.1B3-SNAPSHOT documentation"><meta xmlns:d="http://docbook.org/ns/docbook" name="description" content="User documentation for Apache Cayenne version 3.1B3-SNAPSHOT"><link rel="home" href="index.html" title="Cayenne Guide"><link rel="up" href="cayenne-guide-part3.html" title="Part III. Cayenne Framework - Remote Object Persistence"><link rel="prev" href="cayenne-guide-part3.html" title="Part III. Cayenne Framework - Remote Object Persistence"><link rel="next" href="rop-setup.html" title="Chapter 14. ROP Setup"><script xmlns:d="http://docbook.org/ns/docbook" type="text/javascript">
+ <title xmlns:d="http://docbook.org/ns/docbook">Chapter 13. Introduction to ROP</title><link rel="stylesheet" type="text/css" href="css/cayenne-doc.css"><meta xmlns:d="http://docbook.org/ns/docbook" name="keywords" content="Cayenne 3.2 documentation"><meta xmlns:d="http://docbook.org/ns/docbook" name="description" content="User documentation for Apache Cayenne version 3.2"><link rel="home" href="index.html" title="Cayenne Guide"><link rel="up" href="cayenne-guide-part3.html" title="Part III. Cayenne Framework - Remote Object Persistence"><link rel="prev" href="cayenne-guide-part3.html" title="Part III. Cayenne Framework - Remote Object Persistence"><link rel="next" href="rop-setup.html" title="Chapter 14. ROP Setup"><script xmlns:d="http://docbook.org/ns/docbook" type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-7036673-1']);
_gaq.push(['_trackPageview']);
@@ -9,4 +9,23 @@
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
- </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div xmlns:d="http://docbook.org/ns/docbook" class="navheader"><table width="100%" summary="Navigation header"><tr><th class="versioninfo">v.3.1B3-SNAPSHOT</th><th align="center">Chapter 13. Introduction to ROP</th><th></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="cayenne-guide-part3.html">Prev</a> </td><th width="60%" align="center"><a accesskey="u" href="cayenne-guide-part3.html">Part III. Cayenne Framework - Remote Object Persistence </a></th><td width="20%" align="right"> <a accesskey="n" href="rop-setup.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 13. Introduction to ROP"><div class="titlepage"><div><div><h2 class="title"><a name="introduction-to-rop"></a>Chapter 13. Introduction to ROP</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span cla
ss="section"><a href="introduction-to-rop.html#what-is-rop">What is ROP</a></span></dt><dt><span class="section"><a href="introduction-to-rop.html#main-features">Main Features</a></span></dt></dl></div><div class="section" title="What is ROP"><div class="titlepage"><div><div><h2 class="title"><a name="what-is-rop"></a>What is ROP</h2></div></div></div></div><div class="section" title="Main Features"><div class="titlepage"><div><div><h2 class="title"><a name="main-features"></a>Main Features</h2></div></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="cayenne-guide-part3.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="cayenne-guide-part3.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="rop-setup.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part III. Cayenne Framework - Remote Object Persist
ence </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 14. ROP Setup</td></tr></table></div></body></html>
\ No newline at end of file
+ </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div xmlns:d="http://docbook.org/ns/docbook" class="navheader"><table width="100%" summary="Navigation header"><tr><th class="versioninfo">v.3.2 (3.1B3-SNAPSHOT)</th><th align="center">Chapter 13. Introduction to ROP</th><th></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="cayenne-guide-part3.html">Prev</a> </td><th width="60%" align="center"><a accesskey="u" href="cayenne-guide-part3.html">Part III. Cayenne Framework - Remote Object Persistence </a></th><td width="20%" align="right"> <a accesskey="n" href="rop-setup.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 13. Introduction to ROP"><div class="titlepage"><div><div><h2 class="title"><a name="introduction-to-rop"></a>Chapter 13. Introduction to ROP</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><sp
an class="section"><a href="introduction-to-rop.html#what-is-rop">What is ROP</a></span></dt><dt><span class="section"><a href="introduction-to-rop.html#main-features">Main Features</a></span></dt></dl></div><div class="section" title="What is ROP"><div class="titlepage"><div><div><h2 class="title"><a name="what-is-rop"></a>What is ROP</h2></div></div></div><p>"Remote Object Persistence" is a low-overhead web services-based technology that
+ provides lightweight object persistence and query functionality to 'remote'
+ applications. In other words it provides familiar Cayenne API to applications that do
+ not have direct access to the database. Instead such applications would access Cayenne
+ Web Service (CWS). A single abstract data model (expressed as Cayenne XML DataMap) is
+ used on the server and on the client, while execution logic can be partitioned between
+ the tiers.The following picture compares a regular Cayenne web application and a rich
+ client application that uses remote object persistence technology:</p><p><span class="inlinemediaobject"><img src="images/remote-object-persistence.jpg"></span></p><p>Persistence stack above consists of the following parts:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>ORM Tier: a server-side Cayenne Java application that directly connects to
+ the database via JDBC.</p></li><li class="listitem"><p>CWS (Cayenne Web Service): A wrapper around an ORM tier that makes it
+ accessible to remote CWS clients.</p></li><li class="listitem"><p>Remote Tier (aka Client Tier): A Java application that has no direct DB
+ connection and persists its objects by connecting to remote Cayenne Web
+ Service (CWS). Note that CWS Client doesn't have to be a desktop
+ application. It can be another server-side application. The word "client"
+ means a client of Cayenne Web Service.</p></li></ul></div></div><div class="section" title="Main Features"><div class="titlepage"><div><div><h2 class="title"><a name="main-features"></a>Main Features</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>Unified approach to lightweight object persistence across multiple
+ tiers of a distributed system.</p></li><li class="listitem"><p>Same abstract object model on the server and on the client.</p></li><li class="listitem"><p>Client can "bootstrap" from the server by dynamically loading
+ persistence metadata.</p></li><li class="listitem"><p>An ability to define client objects differently than the server ones,
+ and still have seamless persistence.</p></li><li class="listitem"><p>Generic web service interface that doesn't change when object model
+ changes.</p></li><li class="listitem"><p>An ability to work in two modes: dedicated session mode or shared
+ ("chat") mode when multiple remote clients collaboratively work on the
+ same data.</p></li><li class="listitem"><p>Lazy object and collection faulting.</p></li><li class="listitem"><p>Full context lifecycle</p></li><li class="listitem"><p>Queries, expressions, local query caching, paginated queries.</p></li><li class="listitem"><p>Validation</p></li><li class="listitem"><p>Delete Rules</p></li></ul></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="cayenne-guide-part3.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="cayenne-guide-part3.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="rop-setup.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part III. Cayenne Framework - Remote Object Persistence </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 14. ROP Setup
</td></tr></table></div></body></html>
\ No newline at end of file
Modified: websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/lifecycle-events.html
==============================================================================
--- websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/lifecycle-events.html (original)
+++ websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/lifecycle-events.html Sun Jan 5 16:20:01 2014
@@ -1,6 +1,6 @@
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title xmlns:d="http://docbook.org/ns/docbook">Chapter 10. Lifecycle Events</title><link rel="stylesheet" type="text/css" href="css/cayenne-doc.css"><meta xmlns:d="http://docbook.org/ns/docbook" name="keywords" content="Cayenne 3.1B3-SNAPSHOT documentation"><meta xmlns:d="http://docbook.org/ns/docbook" name="description" content="User documentation for Apache Cayenne version 3.1B3-SNAPSHOT"><link rel="home" href="index.html" title="Cayenne Guide"><link rel="up" href="cayenne-guide-part2.html" title="Part II. Cayenne Framework"><link rel="prev" href="queries.html" title="Chapter 9. Queries"><link rel="next" href="performance-tuning.html" title="Chapter 11. Performance Tuning"><script xmlns:d="http://docbook.org/ns/docbook" type="text/javascript">
+ <title xmlns:d="http://docbook.org/ns/docbook">Chapter 10. Lifecycle Events</title><link rel="stylesheet" type="text/css" href="css/cayenne-doc.css"><meta xmlns:d="http://docbook.org/ns/docbook" name="keywords" content="Cayenne 3.2 documentation"><meta xmlns:d="http://docbook.org/ns/docbook" name="description" content="User documentation for Apache Cayenne version 3.2"><link rel="home" href="index.html" title="Cayenne Guide"><link rel="up" href="cayenne-guide-part2.html" title="Part II. Cayenne Framework"><link rel="prev" href="queries.html" title="Chapter 9. Queries"><link rel="next" href="performance-tuning.html" title="Chapter 11. Performance Tuning"><script xmlns:d="http://docbook.org/ns/docbook" type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-7036673-1']);
_gaq.push(['_trackPageview']);
@@ -9,7 +9,7 @@
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
- </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div xmlns:d="http://docbook.org/ns/docbook" class="navheader"><table width="100%" summary="Navigation header"><tr><th class="versioninfo">v.3.1B3-SNAPSHOT</th><th align="center">Chapter 10. Lifecycle Events</th><th></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="queries.html">Prev</a> </td><th width="60%" align="center"><a accesskey="u" href="cayenne-guide-part2.html">Part II. Cayenne Framework</a></th><td width="20%" align="right"> <a accesskey="n" href="performance-tuning.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 10. Lifecycle Events"><div class="titlepage"><div><div><h2 class="title"><a name="lifecycle-events"></a>Chapter 10. Lifecycle Events</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="lifecycle-events.html#t
ypes-of-lifecycle-events">Types of Lifecycle Events</a></span></dt><dt><span class="section"><a href="lifecycle-events.html#callback-persistent">Callbacks on Persistent Objects</a></span></dt><dt><span class="section"><a href="lifecycle-events.html#callback-non-persistent">Callbacks on Non-Persistent Listeners</a></span></dt><dt><span class="section"><a href="lifecycle-events.html#comining-listeners-with-datachannelfilters">Combining Listeners with DataChannelFilters</a></span></dt></dl></div><p>An application might be interested in getting notified when a Persistent object moves
+ </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div xmlns:d="http://docbook.org/ns/docbook" class="navheader"><table width="100%" summary="Navigation header"><tr><th class="versioninfo">v.3.2 (3.1B3-SNAPSHOT)</th><th align="center">Chapter 10. Lifecycle Events</th><th></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="queries.html">Prev</a> </td><th width="60%" align="center"><a accesskey="u" href="cayenne-guide-part2.html">Part II. Cayenne Framework</a></th><td width="20%" align="right"> <a accesskey="n" href="performance-tuning.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 10. Lifecycle Events"><div class="titlepage"><div><div><h2 class="title"><a name="lifecycle-events"></a>Chapter 10. Lifecycle Events</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="lifecycle-events.
html#types-of-lifecycle-events">Types of Lifecycle Events</a></span></dt><dt><span class="section"><a href="lifecycle-events.html#callback-persistent">Callbacks on Persistent Objects</a></span></dt><dt><span class="section"><a href="lifecycle-events.html#callback-non-persistent">Callbacks on Non-Persistent Listeners</a></span></dt><dt><span class="section"><a href="lifecycle-events.html#comining-listeners-with-datachannelfilters">Combining Listeners with DataChannelFilters</a></span></dt></dl></div><p>An application might be interested in getting notified when a Persistent object moves
through its lifecycle (i.e. fetched from DB, created, modified, committed). E.g. when a new
object is created, the application may want to initialize its default properties (this can't
be done in constructor, as constructor is also called when an object is fetched from DB).
@@ -25,7 +25,7 @@
evnironment outside Cayenne. This power comes from such features as filtering which entity
events are sent to a given listener and the ability to create a common operation context for
multiple callback invocations. All of these are discussed later in this chapter.</p><div class="section" title="Types of Lifecycle Events"><div class="titlepage"><div><div><h2 class="title"><a name="types-of-lifecycle-events"></a>Types of Lifecycle Events</h2></div></div></div><p>Cayenne defines the following 8 types of lifecycle events for which callbacks can be
- regsitered:</p><table frame="void" id="d0e1904"><caption>Table 10.1. Lifecycle Event Types</caption><col width="16%"><col width="84%"><thead><tr>
+ regsitered:</p><table frame="void" id="d0e1917"><caption>Table 10.1. Lifecycle Event Types</caption><col width="16%"><col width="84%"><thead><tr>
<th>Event</th>
<th>Occurs...</th>
</tr></thead><tbody><tr>
Modified: websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/orderings.html
==============================================================================
--- websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/orderings.html (original)
+++ websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/orderings.html Sun Jan 5 16:20:01 2014
@@ -1,6 +1,6 @@
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title xmlns:d="http://docbook.org/ns/docbook">Chapter 8. Orderings</title><link rel="stylesheet" type="text/css" href="css/cayenne-doc.css"><meta xmlns:d="http://docbook.org/ns/docbook" name="keywords" content="Cayenne 3.1B3-SNAPSHOT documentation"><meta xmlns:d="http://docbook.org/ns/docbook" name="description" content="User documentation for Apache Cayenne version 3.1B3-SNAPSHOT"><link rel="home" href="index.html" title="Cayenne Guide"><link rel="up" href="cayenne-guide-part2.html" title="Part II. Cayenne Framework"><link rel="prev" href="expressions.html" title="Chapter 7. Expressions"><link rel="next" href="queries.html" title="Chapter 9. Queries"><script xmlns:d="http://docbook.org/ns/docbook" type="text/javascript">
+ <title xmlns:d="http://docbook.org/ns/docbook">Chapter 8. Orderings</title><link rel="stylesheet" type="text/css" href="css/cayenne-doc.css"><meta xmlns:d="http://docbook.org/ns/docbook" name="keywords" content="Cayenne 3.2 documentation"><meta xmlns:d="http://docbook.org/ns/docbook" name="description" content="User documentation for Apache Cayenne version 3.2"><link rel="home" href="index.html" title="Cayenne Guide"><link rel="up" href="cayenne-guide-part2.html" title="Part II. Cayenne Framework"><link rel="prev" href="expressions.html" title="Chapter 7. Expressions"><link rel="next" href="queries.html" title="Chapter 9. Queries"><script xmlns:d="http://docbook.org/ns/docbook" type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-7036673-1']);
_gaq.push(['_trackPageview']);
@@ -9,7 +9,7 @@
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
- </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div xmlns:d="http://docbook.org/ns/docbook" class="navheader"><table width="100%" summary="Navigation header"><tr><th class="versioninfo">v.3.1B3-SNAPSHOT</th><th align="center">Chapter 8. Orderings</th><th></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="expressions.html">Prev</a> </td><th width="60%" align="center"><a accesskey="u" href="cayenne-guide-part2.html">Part II. Cayenne Framework</a></th><td width="20%" align="right"> <a accesskey="n" href="queries.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 8. Orderings"><div class="titlepage"><div><div><h2 class="title"><a name="orderings"></a>Chapter 8. Orderings</h2></div></div></div><p>An Ordering object defines how a list of objects should be ordered. Orderings are
+ </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div xmlns:d="http://docbook.org/ns/docbook" class="navheader"><table width="100%" summary="Navigation header"><tr><th class="versioninfo">v.3.2 (3.1B3-SNAPSHOT)</th><th align="center">Chapter 8. Orderings</th><th></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="expressions.html">Prev</a> </td><th width="60%" align="center"><a accesskey="u" href="cayenne-guide-part2.html">Part II. Cayenne Framework</a></th><td width="20%" align="right"> <a accesskey="n" href="queries.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 8. Orderings"><div class="titlepage"><div><div><h2 class="title"><a name="orderings"></a>Chapter 8. Orderings</h2></div></div></div><p>An Ordering object defines how a list of objects should be ordered. Orderings are
essentially path expressions combined with a sorting strategy. Creating an Ordering:
</p><pre class="programlisting">Ordering o = <span xmlns="http://www.w3.org/1999/xhtml" class="hl-keyword">new</span> Ordering(Painting.NAME_PROPERTY, SortOrder.ASENDING);</pre><p>Like expressions, orderings are translated into SQL as parts of queries (and the sorting
occurs in the database). Also like expressions, orderings can be used in memory, naturally -
Modified: websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/performance-tuning.html
==============================================================================
--- websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/performance-tuning.html (original)
+++ websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/performance-tuning.html Sun Jan 5 16:20:01 2014
@@ -1,6 +1,6 @@
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title xmlns:d="http://docbook.org/ns/docbook">Chapter 11. Performance Tuning</title><link rel="stylesheet" type="text/css" href="css/cayenne-doc.css"><meta xmlns:d="http://docbook.org/ns/docbook" name="keywords" content="Cayenne 3.1B3-SNAPSHOT documentation"><meta xmlns:d="http://docbook.org/ns/docbook" name="description" content="User documentation for Apache Cayenne version 3.1B3-SNAPSHOT"><link rel="home" href="index.html" title="Cayenne Guide"><link rel="up" href="cayenne-guide-part2.html" title="Part II. Cayenne Framework"><link rel="prev" href="lifecycle-events.html" title="Chapter 10. Lifecycle Events"><link rel="next" href="customizing-cayenne-runtime.html" title="Chapter 12. Customizing Cayenne Runtime"><script xmlns:d="http://docbook.org/ns/docbook" type="text/javascript">
+ <title xmlns:d="http://docbook.org/ns/docbook">Chapter 11. Performance Tuning</title><link rel="stylesheet" type="text/css" href="css/cayenne-doc.css"><meta xmlns:d="http://docbook.org/ns/docbook" name="keywords" content="Cayenne 3.2 documentation"><meta xmlns:d="http://docbook.org/ns/docbook" name="description" content="User documentation for Apache Cayenne version 3.2"><link rel="home" href="index.html" title="Cayenne Guide"><link rel="up" href="cayenne-guide-part2.html" title="Part II. Cayenne Framework"><link rel="prev" href="lifecycle-events.html" title="Chapter 10. Lifecycle Events"><link rel="next" href="customizing-cayenne-runtime.html" title="Chapter 12. Customizing Cayenne Runtime"><script xmlns:d="http://docbook.org/ns/docbook" type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-7036673-1']);
_gaq.push(['_trackPageview']);
@@ -9,7 +9,7 @@
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
- </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div xmlns:d="http://docbook.org/ns/docbook" class="navheader"><table width="100%" summary="Navigation header"><tr><th class="versioninfo">v.3.1B3-SNAPSHOT</th><th align="center">Chapter 11. Performance Tuning</th><th></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="lifecycle-events.html">Prev</a> </td><th width="60%" align="center"><a accesskey="u" href="cayenne-guide-part2.html">Part II. Cayenne Framework</a></th><td width="20%" align="right"> <a accesskey="n" href="customizing-cayenne-runtime.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 11. Performance Tuning"><div class="titlepage"><div><div><h2 class="title"><a name="performance-tuning"></a>Chapter 11. Performance Tuning</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a hre
f="performance-tuning.html#prefetching">Prefetching</a></span></dt><dt><span class="section"><a href="performance-tuning.html#datarows">Data Rows</a></span></dt><dt><span class="section"><a href="performance-tuning.html#iterated-queries">Iterated Queries</a></span></dt><dt><span class="section"><a href="performance-tuning.html#paginated-queries">Paginated Queries</a></span></dt><dt><span class="section"><a href="performance-tuning.html#caching-and-fresh-data">Caching and Fresh Data</a></span></dt><dt><span class="section"><a href="performance-tuning.html#turning-off-synchronization-of-objectcontexts">Turning off Synchronization of ObjectContexts</a></span></dt></dl></div><div class="section" title="Prefetching"><div class="titlepage"><div><div><h2 class="title"><a name="prefetching"></a>Prefetching</h2></div></div></div><p>Prefetching is a technique that allows to bring back in one query not only the queried
+ </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div xmlns:d="http://docbook.org/ns/docbook" class="navheader"><table width="100%" summary="Navigation header"><tr><th class="versioninfo">v.3.2 (3.1B3-SNAPSHOT)</th><th align="center">Chapter 11. Performance Tuning</th><th></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="lifecycle-events.html">Prev</a> </td><th width="60%" align="center"><a accesskey="u" href="cayenne-guide-part2.html">Part II. Cayenne Framework</a></th><td width="20%" align="right"> <a accesskey="n" href="customizing-cayenne-runtime.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 11. Performance Tuning"><div class="titlepage"><div><div><h2 class="title"><a name="performance-tuning"></a>Chapter 11. Performance Tuning</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section">
<a href="performance-tuning.html#prefetching">Prefetching</a></span></dt><dt><span class="section"><a href="performance-tuning.html#datarows">Data Rows</a></span></dt><dt><span class="section"><a href="performance-tuning.html#iterated-queries">Iterated Queries</a></span></dt><dt><span class="section"><a href="performance-tuning.html#paginated-queries">Paginated Queries</a></span></dt><dt><span class="section"><a href="performance-tuning.html#caching-and-fresh-data">Caching and Fresh Data</a></span></dt><dt><span class="section"><a href="performance-tuning.html#turning-off-synchronization-of-objectcontexts">Turning off Synchronization of ObjectContexts</a></span></dt></dl></div><div class="section" title="Prefetching"><div class="titlepage"><div><div><h2 class="title"><a name="prefetching"></a>Prefetching</h2></div></div></div><p>Prefetching is a technique that allows to bring back in one query not only the queried
objects, but also objects related to them. In other words it is a controlled eager
relationship resolving mechanism. Prefetching is discussed in the "Performance Tuning"
chapter, as it is a powerful performance optimization method. However another common
Modified: websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/persistent-objects-objectcontext.html
==============================================================================
--- websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/persistent-objects-objectcontext.html (original)
+++ websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/persistent-objects-objectcontext.html Sun Jan 5 16:20:01 2014
@@ -1,6 +1,6 @@
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title xmlns:d="http://docbook.org/ns/docbook">Chapter 6. Persistent Objects and ObjectContext</title><link rel="stylesheet" type="text/css" href="css/cayenne-doc.css"><meta xmlns:d="http://docbook.org/ns/docbook" name="keywords" content="Cayenne 3.1B3-SNAPSHOT documentation"><meta xmlns:d="http://docbook.org/ns/docbook" name="description" content="User documentation for Apache Cayenne version 3.1B3-SNAPSHOT"><link rel="home" href="index.html" title="Cayenne Guide"><link rel="up" href="cayenne-guide-part2.html" title="Part II. Cayenne Framework"><link rel="prev" href="starting-cayenne.html" title="Chapter 5. Starting Cayenne"><link rel="next" href="expressions.html" title="Chapter 7. Expressions"><script xmlns:d="http://docbook.org/ns/docbook" type="text/javascript">
+ <title xmlns:d="http://docbook.org/ns/docbook">Chapter 6. Persistent Objects and ObjectContext</title><link rel="stylesheet" type="text/css" href="css/cayenne-doc.css"><meta xmlns:d="http://docbook.org/ns/docbook" name="keywords" content="Cayenne 3.2 documentation"><meta xmlns:d="http://docbook.org/ns/docbook" name="description" content="User documentation for Apache Cayenne version 3.2"><link rel="home" href="index.html" title="Cayenne Guide"><link rel="up" href="cayenne-guide-part2.html" title="Part II. Cayenne Framework"><link rel="prev" href="starting-cayenne.html" title="Chapter 5. Starting Cayenne"><link rel="next" href="expressions.html" title="Chapter 7. Expressions"><script xmlns:d="http://docbook.org/ns/docbook" type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-7036673-1']);
_gaq.push(['_trackPageview']);
@@ -9,7 +9,7 @@
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
- </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div xmlns:d="http://docbook.org/ns/docbook" class="navheader"><table width="100%" summary="Navigation header"><tr><th class="versioninfo">v.3.1B3-SNAPSHOT</th><th align="center">Chapter 6. Persistent Objects and ObjectContext</th><th></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="starting-cayenne.html">Prev</a> </td><th width="60%" align="center"><a accesskey="u" href="cayenne-guide-part2.html">Part II. Cayenne Framework</a></th><td width="20%" align="right"> <a accesskey="n" href="expressions.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 6. Persistent Objects and ObjectContext"><div class="titlepage"><div><div><h2 class="title"><a name="persistent-objects-objectcontext"></a>Chapter 6. Persistent Objects and ObjectContext</h2></div></div></div><div class="toc"><p><b>Table of Con
tents</b></p><dl><dt><span class="section"><a href="persistent-objects-objectcontext.html#objectcontext">ObjectContext</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#persistent-lifecycle">Persistent Object and its Lifecycle</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#persistent-operations">ObjectContext Persistence API</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#cayenne-helper-class">Cayenne Helper Class</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#objectcontext-nesting">ObjectContext Nesting</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#generic-persistent-objects">Generic Persistent Objects</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#transactions">Transactions</a></span></dt></dl></div><div class="section" title="ObjectContext">
<div class="titlepage"><div><div><h2 class="title"><a name="objectcontext"></a>ObjectContext</h2></div></div></div><p>ObjectContext is an interface that users normally work with to access the database. It
+ </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div xmlns:d="http://docbook.org/ns/docbook" class="navheader"><table width="100%" summary="Navigation header"><tr><th class="versioninfo">v.3.2 (3.1B3-SNAPSHOT)</th><th align="center">Chapter 6. Persistent Objects and ObjectContext</th><th></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="starting-cayenne.html">Prev</a> </td><th width="60%" align="center"><a accesskey="u" href="cayenne-guide-part2.html">Part II. Cayenne Framework</a></th><td width="20%" align="right"> <a accesskey="n" href="expressions.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 6. Persistent Objects and ObjectContext"><div class="titlepage"><div><div><h2 class="title"><a name="persistent-objects-objectcontext"></a>Chapter 6. Persistent Objects and ObjectContext</h2></div></div></div><div class="toc"><p><b>Table
of Contents</b></p><dl><dt><span class="section"><a href="persistent-objects-objectcontext.html#objectcontext">ObjectContext</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#persistent-lifecycle">Persistent Object and its Lifecycle</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#persistent-operations">ObjectContext Persistence API</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#cayenne-helper-class">Cayenne Helper Class</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#objectcontext-nesting">ObjectContext Nesting</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#generic-persistent-objects">Generic Persistent Objects</a></span></dt><dt><span class="section"><a href="persistent-objects-objectcontext.html#transactions">Transactions</a></span></dt></dl></div><div class="section" title="ObjectCon
text"><div class="titlepage"><div><div><h2 class="title"><a name="objectcontext"></a>ObjectContext</h2></div></div></div><p>ObjectContext is an interface that users normally work with to access the database. It
provides the API to execute database operations and to manage persistent objects. A
context is obtained from the
ServerRuntime:</p><pre class="programlisting">ObjectContext context = runtime.getContext();</pre><p>The call above creates a new instance of ObjectContext that can access the database via this
@@ -39,7 +39,7 @@
equality check of 2 objects, knowing persistence state would allow highlighting changed
objects, etc.</p><p>Each persistent object belongs to a single ObjectContext, and can be in one of the following
persistence states (as defined in <code class="code">org.apache.cayenne.PersistenceState</code>)
- :</p><table frame="void" id="d0e1017"><caption>Table 6.1. Persistence States</caption><col width="16%"><col width="84%"><tbody><tr>
+ :</p><table frame="void" id="d0e1026"><caption>Table 6.1. Persistence States</caption><col width="16%"><col width="84%"><tbody><tr>
<td>TRANSIENT</td>
<td>The object is not registered with an ObjectContext and will not be
persisted.</td>
Modified: websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/queries.html
==============================================================================
--- websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/queries.html (original)
+++ websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/queries.html Sun Jan 5 16:20:01 2014
@@ -1,6 +1,6 @@
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title xmlns:d="http://docbook.org/ns/docbook">Chapter 9. Queries</title><link rel="stylesheet" type="text/css" href="css/cayenne-doc.css"><meta xmlns:d="http://docbook.org/ns/docbook" name="keywords" content="Cayenne 3.1B3-SNAPSHOT documentation"><meta xmlns:d="http://docbook.org/ns/docbook" name="description" content="User documentation for Apache Cayenne version 3.1B3-SNAPSHOT"><link rel="home" href="index.html" title="Cayenne Guide"><link rel="up" href="cayenne-guide-part2.html" title="Part II. Cayenne Framework"><link rel="prev" href="orderings.html" title="Chapter 8. Orderings"><link rel="next" href="lifecycle-events.html" title="Chapter 10. Lifecycle Events"><script xmlns:d="http://docbook.org/ns/docbook" type="text/javascript">
+ <title xmlns:d="http://docbook.org/ns/docbook">Chapter 9. Queries</title><link rel="stylesheet" type="text/css" href="css/cayenne-doc.css"><meta xmlns:d="http://docbook.org/ns/docbook" name="keywords" content="Cayenne 3.2 documentation"><meta xmlns:d="http://docbook.org/ns/docbook" name="description" content="User documentation for Apache Cayenne version 3.2"><link rel="home" href="index.html" title="Cayenne Guide"><link rel="up" href="cayenne-guide-part2.html" title="Part II. Cayenne Framework"><link rel="prev" href="orderings.html" title="Chapter 8. Orderings"><link rel="next" href="lifecycle-events.html" title="Chapter 10. Lifecycle Events"><script xmlns:d="http://docbook.org/ns/docbook" type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-7036673-1']);
_gaq.push(['_trackPageview']);
@@ -9,7 +9,7 @@
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
- </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div xmlns:d="http://docbook.org/ns/docbook" class="navheader"><table width="100%" summary="Navigation header"><tr><th class="versioninfo">v.3.1B3-SNAPSHOT</th><th align="center">Chapter 9. Queries</th><th></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="orderings.html">Prev</a> </td><th width="60%" align="center"><a accesskey="u" href="cayenne-guide-part2.html">Part II. Cayenne Framework</a></th><td width="20%" align="right"> <a accesskey="n" href="lifecycle-events.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 9. Queries"><div class="titlepage"><div><div><h2 class="title"><a name="queries"></a>Chapter 9. Queries</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="queries.html#selectquery">SelectQuery</a></span></dt><dt><span
class="section"><a href="queries.html#ejbqlquery">EJBQLQuery</a></span></dt><dt><span class="section"><a href="queries.html#sqltemplate">SQLTemplate</a></span></dt><dt><span class="section"><a href="queries.html#procedurequery">ProcedureQuery</a></span></dt><dt><span class="section"><a href="queries.html#namedquery">NamedQuery</a></span></dt><dt><span class="section"><a href="queries.html#custom-queries">Custom Queries</a></span></dt></dl></div><p>Queries are Java objects used by the application to communicate with the database. Cayenne
+ </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div xmlns:d="http://docbook.org/ns/docbook" class="navheader"><table width="100%" summary="Navigation header"><tr><th class="versioninfo">v.3.2 (3.1B3-SNAPSHOT)</th><th align="center">Chapter 9. Queries</th><th></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="orderings.html">Prev</a> </td><th width="60%" align="center"><a accesskey="u" href="cayenne-guide-part2.html">Part II. Cayenne Framework</a></th><td width="20%" align="right"> <a accesskey="n" href="lifecycle-events.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 9. Queries"><div class="titlepage"><div><div><h2 class="title"><a name="queries"></a>Chapter 9. Queries</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="queries.html#selectquery">SelectQuery</a></span></dt><dt
><span class="section"><a href="queries.html#ejbqlquery">EJBQLQuery</a></span></dt><dt><span class="section"><a href="queries.html#sqltemplate">SQLTemplate</a></span></dt><dt><span class="section"><a href="queries.html#procedurequery">ProcedureQuery</a></span></dt><dt><span class="section"><a href="queries.html#namedquery">NamedQuery</a></span></dt><dt><span class="section"><a href="queries.html#custom-queries">Custom Queries</a></span></dt></dl></div><p>Queries are Java objects used by the application to communicate with the database. Cayenne
knows how to translate queries into SQL statements appropriate for a particular database
engine. Most often queries are used to find objects matching certain criteria, but there are
other types of queries too. E.g. those allowing to run native SQL, call DB stored
@@ -150,7 +150,7 @@ query.setParameters(Collections.singleto
E.g. passing a date object in a WHERE clause expression may be converted to a String
not understood by the target RDBMS SQL parser. In such cases variable should be wrapped in <code class="code">#bind</code>
directive as described below.</p></div><div class="section" title="Directives"><div class="titlepage"><div><div><h3 class="title"><a name="sqltemplate-bind-directive"></a>Directives</h3></div></div></div><p>These are the Cayenne directives used to customize SQLTemplate parsing and
- integrate it with the JDBC layer: </p><div class="section" title="#bind"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1531"></a>#bind</h4></div></div></div><p>Creates a PreparedStatement positional parameter in place of the directive,
+ integrate it with the JDBC layer: </p><div class="section" title="#bind"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1543"></a>#bind</h4></div></div></div><p>Creates a PreparedStatement positional parameter in place of the directive,
binding the value to it before statement execution. <code class="code">#bind</code> is
allowed in places where a "?" would be allowed in a PreparedStatement. And in
such places it almost always makes sense to pass objects to the template via
@@ -169,7 +169,7 @@ query.setParameters(Collections.singleto
#bind(<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'str'</span>)
#bind($xyz <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'VARCHAR'</span>)
#bind($xyz <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'DECIMAL'</span> <span xmlns="http://www.w3.org/1999/xhtml" class="hl-number">2</span>)</pre><p><span class="italic">Full
- example:</span></p><pre class="programlisting">update ARTIST set NAME = #bind($name) where ID = #bind($id)</pre></div><div class="section" title="#bindEqual"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1582"></a>#bindEqual</h4></div></div></div><p>Same as #bind, but also includes the "=" sign in front of the value binding.
+ example:</span></p><pre class="programlisting">update ARTIST set NAME = #bind($name) where ID = #bind($id)</pre></div><div class="section" title="#bindEqual"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1594"></a>#bindEqual</h4></div></div></div><p>Same as #bind, but also includes the "=" sign in front of the value binding.
Look at the example below - we took the #bind example and replaced "<code class="code">ID =
#bind(..)</code>" with "<code class="code">ID #bindEqual(..)</code>". While it looks like
a clumsy shortcut to eliminate the equal sign, the actual reason why this is
@@ -184,7 +184,7 @@ query.setParameters(Collections.singleto
#bindEqual(<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'str'</span>)
#bindEqual($xyz <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'VARCHAR'</span>)
#bindEqual($xyz <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'DECIMAL'</span> <span xmlns="http://www.w3.org/1999/xhtml" class="hl-number">2</span>)</pre><p><span class="italic">Full
- example:</span></p><pre class="programlisting">update ARTIST set NAME = #bind($name) where ID #bindEqual($id)</pre></div><div class="section" title="#bindNotEqual"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1620"></a>#bindNotEqual</h4></div></div></div><p>This directive deals with the same issue as <code class="code">#bindEqual</code> above,
+ example:</span></p><pre class="programlisting">update ARTIST set NAME = #bind($name) where ID #bindEqual($id)</pre></div><div class="section" title="#bindNotEqual"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1632"></a>#bindNotEqual</h4></div></div></div><p>This directive deals with the same issue as <code class="code">#bindEqual</code> above,
only it generates "not equal" in front of the value (or IS NOT NULL).</p><p><span class="italic">Semantics:</span></p><pre class="programlisting">#bindNotEqual(value)
#bindNotEqual(value jdbcType)
#bindNotEqual(value jdbcType scale)</pre><p><span class="italic">Arguments: (same as #bind)</span></p><p>
@@ -192,7 +192,7 @@ query.setParameters(Collections.singleto
#bindNotEqual(<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'str'</span>)
#bindNotEqual($xyz <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'VARCHAR'</span>)
#bindNotEqual($xyz <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'DECIMAL'</span> <span xmlns="http://www.w3.org/1999/xhtml" class="hl-number">2</span>)</pre><p><span class="italic">Full
- example:</span></p><pre class="programlisting">update ARTIST set NAME = #bind($name) where ID #bindEqual($id)</pre></div><div class="section" title="#bindObjectEqual"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1648"></a>#bindObjectEqual</h4></div></div></div><p>It can be tricky to use a Persistent object or an ObjectId in a binding,
+ example:</span></p><pre class="programlisting">update ARTIST set NAME = #bind($name) where ID #bindEqual($id)</pre></div><div class="section" title="#bindObjectEqual"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1660"></a>#bindObjectEqual</h4></div></div></div><p>It can be tricky to use a Persistent object or an ObjectId in a binding,
especially for tables with compound primary keys. This directive helps to handle
such binding. It maps columns in the query to the names of Persistent object ID
columns, extracts ID values from the object, and generates SQL like "COL1 = ?
@@ -209,7 +209,7 @@ query.setParameters(Collections.singleto
SQLTemplate select = <span xmlns="http://www.w3.org/1999/xhtml" class="hl-keyword">new</span> SQLTemplate(Artist.<span xmlns="http://www.w3.org/1999/xhtml" class="hl-keyword">class</span>, sql);
Artist a = ....
-select.setParameters(Collections.singletonMap(<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">"a"</span>, a)); </pre></div><div class="section" title="#bindObjectNotEqual"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1690"></a>#bindObjectNotEqual</h4></div></div></div><p>Same as #bindObjectEqual above, only generates "not equal" operator for value
+select.setParameters(Collections.singletonMap(<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">"a"</span>, a)); </pre></div><div class="section" title="#bindObjectNotEqual"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1702"></a>#bindObjectNotEqual</h4></div></div></div><p>Same as #bindObjectEqual above, only generates "not equal" operator for value
comparison (or IS NOT NULL).</p><p><span class="italic">Semantics:</span></p><pre class="programlisting">#bindObjectNotEqual(value columns idColumns)</pre><p><span class="italic">Arguments: (same as #bindObjectEqual)</span>
</p><p>
<span class="italic">Usage</span>:</p><pre class="programlisting">#bindObjectNotEqual($a <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'t0.ID'</span> <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'ID'</span>)
@@ -218,7 +218,7 @@ select.setParameters(Collections.singlet
SQLTemplate select = <span xmlns="http://www.w3.org/1999/xhtml" class="hl-keyword">new</span> SQLTemplate(Artist.<span xmlns="http://www.w3.org/1999/xhtml" class="hl-keyword">class</span>, sql);
Artist a = ....
-select.setParameters(Collections.singletonMap(<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">"a"</span>, a)); </pre></div><div class="section" title="#result"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1716"></a>#result</h4></div></div></div><p>Renders a column in SELECT clause of a query and maps it to a key in the
+select.setParameters(Collections.singletonMap(<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">"a"</span>, a)); </pre></div><div class="section" title="#result"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1728"></a>#result</h4></div></div></div><p>Renders a column in SELECT clause of a query and maps it to a key in the
result DataRow. Also ensures the value read is of the correct type. This allows
to create a DataRow (and ultimately - a persistent object) from an arbitrary
ResultSet.</p><p><span class="italic">Semantics:</span></p><pre class="programlisting">#result(column)
@@ -245,7 +245,7 @@ select.setParameters(Collections.singlet
#result(<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'DOB'</span> <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'java.util.Date'</span> <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'DATE_OF_BIRTH'</span>)
#result(<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'DOB'</span> <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'java.util.Date'</span> <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">''</span> <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'artist.DATE_OF_BIRTH'</span>)
#result(<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'SALARY'</span> <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'float'</span>) </pre><p><span class="italic">Full
- example:</span></p><pre class="programlisting">SELECT #result(<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'ID'</span> <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'int'</span>), #result(<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'NAME'</span> <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'String'</span>), #result(<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'DATE_OF_BIRTH'</span> <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'java.util.Date'</span>) FROM ARTIST</pre></div><div class="section" title="#chain and #chunk"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1772"></a>#chain and #chunk</h4></div></div></div><p><code class="code">#chain</code> and <code class="code">#chunk</code> directives are used for
+ example:</span></p><pre class="programlisting">SELECT #result(<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'ID'</span> <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'int'</span>), #result(<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'NAME'</span> <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'String'</span>), #result(<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'DATE_OF_BIRTH'</span> <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'java.util.Date'</span>) FROM ARTIST</pre></div><div class="section" title="#chain and #chunk"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1784"></a>#chain and #chunk</h4></div></div></div><p><code class="code">#chain</code> and <code class="code">#chunk</code> directives are used for
conditional inclusion of SQL code. They are used together with
<code class="code">#chain</code> wrapping multiple <code class="code">#chunks</code>. A chunk
evaluates its parameter expression and if it is NULL suppresses rendering of the
@@ -263,7 +263,7 @@ select.setParameters(Collections.singlet
example:</span></p><pre class="programlisting">#chain(<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'OR'</span> <span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">'WHERE'</span>)
#chunk($name) NAME LIKE #bind($name) #end<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">"
</span> #chunk($id) ARTIST_ID > #bind($id) #end<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">"
-</span>#end<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">" </span></pre></div></div><div class="section" title="Mapping SQLTemplate Results"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1800"></a>Mapping SQLTemplate Results</h3></div></div></div><p>Here we'll discuss how to convert the data selected via SQLTemplate to some
+</span>#end<span xmlns="http://www.w3.org/1999/xhtml" class="hl-string">" </span></pre></div></div><div class="section" title="Mapping SQLTemplate Results"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1812"></a>Mapping SQLTemplate Results</h3></div></div></div><p>Here we'll discuss how to convert the data selected via SQLTemplate to some
useable format, compatible with other query results. It can either be very simple or
very complex, depending on the structure of the SQL, JDBC driver nature and the
desired result structure. This section presents various tips and tricks dealing with
Modified: websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/rop-deployment.html
==============================================================================
--- websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/rop-deployment.html (original)
+++ websites/staging/cayenne/trunk/content/docs/3.1/cayenne-guide/rop-deployment.html Sun Jan 5 16:20:01 2014
@@ -1,6 +1,6 @@
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title xmlns:d="http://docbook.org/ns/docbook">Chapter 17. ROP Deployment</title><link rel="stylesheet" type="text/css" href="css/cayenne-doc.css"><meta xmlns:d="http://docbook.org/ns/docbook" name="keywords" content="Cayenne 3.1B3-SNAPSHOT documentation"><meta xmlns:d="http://docbook.org/ns/docbook" name="description" content="User documentation for Apache Cayenne version 3.1B3-SNAPSHOT"><link rel="home" href="index.html" title="Cayenne Guide"><link rel="up" href="cayenne-guide-part3.html" title="Part III. Cayenne Framework - Remote Object Persistence"><link rel="prev" href="implementing-rop-client.html" title="Chapter 16. Implementing ROP Client"><link rel="next" href="current-limitations.html" title="Chapter 18. Current Limitations"><script xmlns:d="http://docbook.org/ns/docbook" type="text/javascript">
+ <title xmlns:d="http://docbook.org/ns/docbook">Chapter 17. ROP Deployment</title><link rel="stylesheet" type="text/css" href="css/cayenne-doc.css"><meta xmlns:d="http://docbook.org/ns/docbook" name="keywords" content="Cayenne 3.2 documentation"><meta xmlns:d="http://docbook.org/ns/docbook" name="description" content="User documentation for Apache Cayenne version 3.2"><link rel="home" href="index.html" title="Cayenne Guide"><link rel="up" href="cayenne-guide-part3.html" title="Part III. Cayenne Framework - Remote Object Persistence"><link rel="prev" href="implementing-rop-client.html" title="Chapter 16. Implementing ROP Client"><link rel="next" href="current-limitations.html" title="Chapter 18. Current Limitations"><script xmlns:d="http://docbook.org/ns/docbook" type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-7036673-1']);
_gaq.push(['_trackPageview']);
@@ -9,7 +9,7 @@
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
- </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div xmlns:d="http://docbook.org/ns/docbook" class="navheader"><table width="100%" summary="Navigation header"><tr><th class="versioninfo">v.3.1B3-SNAPSHOT</th><th align="center">Chapter 17. ROP Deployment</th><th></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="implementing-rop-client.html">Prev</a> </td><th width="60%" align="center"><a accesskey="u" href="cayenne-guide-part3.html">Part III. Cayenne Framework - Remote Object Persistence </a></th><td width="20%" align="right"> <a accesskey="n" href="current-limitations.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 17. ROP Deployment"><div class="titlepage"><div><div><h2 class="title"><a name="rop-deployment"></a>Chapter 17. ROP Deployment</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="se
ction"><a href="rop-deployment.html#deploying-rop-server">Deploying ROP Server</a></span></dt><dt><span class="section"><a href="rop-deployment.html#deploying-rop-client">Deploying ROP Client</a></span></dt><dt><span class="section"><a href="rop-deployment.html#rop-security">Security</a></span></dt></dl></div><div class="section" title="Deploying ROP Server"><div class="titlepage"><div><div><h2 class="title"><a name="deploying-rop-server"></a>Deploying ROP Server</h2></div></div></div><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Recent versions of Tomcat and Jetty containers (e.g. Tomcat 6 and 7, Jetty 8) contain code
+ </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div xmlns:d="http://docbook.org/ns/docbook" class="navheader"><table width="100%" summary="Navigation header"><tr><th class="versioninfo">v.3.2 (3.1B3-SNAPSHOT)</th><th align="center">Chapter 17. ROP Deployment</th><th></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="implementing-rop-client.html">Prev</a> </td><th width="60%" align="center"><a accesskey="u" href="cayenne-guide-part3.html">Part III. Cayenne Framework - Remote Object Persistence </a></th><td width="20%" align="right"> <a accesskey="n" href="current-limitations.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 17. ROP Deployment"><div class="titlepage"><div><div><h2 class="title"><a name="rop-deployment"></a>Chapter 17. ROP Deployment</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span cla
ss="section"><a href="rop-deployment.html#deploying-rop-server">Deploying ROP Server</a></span></dt><dt><span class="section"><a href="rop-deployment.html#deploying-rop-client">Deploying ROP Client</a></span></dt><dt><span class="section"><a href="rop-deployment.html#rop-security">Security</a></span></dt></dl></div><div class="section" title="Deploying ROP Server"><div class="titlepage"><div><div><h2 class="title"><a name="deploying-rop-server"></a>Deploying ROP Server</h2></div></div></div><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Recent versions of Tomcat and Jetty containers (e.g. Tomcat 6 and 7, Jetty 8) contain code
addressing a security concern related to "session fixation problem" by resetting the
existing session ID of any request that requires BASIC authentcaition. If ROP
service is protected with declarative security (see the the ROP tutorial and the