cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aadamc...@apache.org
Subject cayenne git commit: Docs
Date Sat, 26 Sep 2015 17:54:57 GMT
Repository: cayenne
Updated Branches:
  refs/heads/master 43a0af870 -> 7decb6ce0


Docs

* Java 7 switch allows us to take a few shortcuts, namely try-with-resources
* documenting ResultBatchIterator


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/7decb6ce
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/7decb6ce
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/7decb6ce

Branch: refs/heads/master
Commit: 7decb6ce098ed89e64c204b5c9c725074a6f479f
Parents: 43a0af8
Author: aadamchik <aadamchik@apache.org>
Authored: Sat Sep 26 20:53:44 2015 +0300
Committer: aadamchik <aadamchik@apache.org>
Committed: Sat Sep 26 20:54:49 2015 +0300

----------------------------------------------------------------------
 .../src/docbkx/performance-tuning.xml           | 27 +++++++++++---------
 1 file changed, 15 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/7decb6ce/docs/docbook/cayenne-guide/src/docbkx/performance-tuning.xml
----------------------------------------------------------------------
diff --git a/docs/docbook/cayenne-guide/src/docbkx/performance-tuning.xml b/docs/docbook/cayenne-guide/src/docbkx/performance-tuning.xml
index 06b98ec..2cff9a9 100644
--- a/docs/docbook/cayenne-guide/src/docbkx/performance-tuning.xml
+++ b/docs/docbook/cayenne-guide/src/docbkx/performance-tuning.xml
@@ -198,30 +198,33 @@ for(DataRow row : rows) {
             closing to avoid JDBC resources leak, or a callback that lets Cayenne handle
resource
             management. In both cases iteration can be performed using "for" loop, as ResultIterator
             is "Iterable".</para>
-        <para>Direct access.  Here common sense tells us that ResultIterators instances
should be
+        <para>Direct access. Here common sense tells us that ResultIterators instances
should be
             processed and closed as soon as possible to release the DB connection. E.g. storing
open
             iterators between HTTP requests for unpredictable length of time would quickly
exhaust
             the connection
-            pool.<programlisting language="java">// create a regular query
-SelectQuery&lt;Artist> q = new SelectQuery&lt;Artist>(Artist.class);
-
-ResultIterator&lt;Artist> it = context.iterator(q);
-try {
+            pool.<programlisting language="java">try(ResultIterator&lt;Artist>
it = ObjectSelect.query(Artist.class).iterator(context)) {
     for(Artist a : it) {
        // do something with the object...
        ...
     }           
-}
-finally {
-    it.close();
 }</programlisting></para>
         <para>Same thing with a
-            callback:<programlisting>SelectQuery&lt;Artist> q = new SelectQuery&lt;Artist>(Artist.class);
-
-context.iterate(q, (Artist a) -> {
+            callback:<programlisting>ObjectSelect.query(Artist.class).iterate(context,
(Artist a) -> {
     // do something with the object...
     ...
 });</programlisting></para>
+        <para>Another example is a BatchIterator that allows to process more than one
object in each
+            iteration. This is a common scenario in various data processing jobs - read a
batch of
+            objects, process them, commit  the results, and then repeat. This allows to further
+            optimize processing (e.g. by avoiding frequent
+            commits).<programlisting>try(ResultBatchIterator&lt;Artist> it =
ObjectSelect.query(Artist.class).iterator(context)) {
+    for(List&lt;Artist> list : it) {
+       // do something with each list
+       ...
+       // possibly commit your changes
+       context.commitChanges();
+    }           
+}</programlisting></para>
     </section>
     <section xml:id="paginated-queries">
         <title>Paginated Queries</title>


Mime
View raw message