This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/master by this push:
     new b0de688c1 CAY-2744 Remove ROP support  - cleanup client related docs, 
references, etc.
b0de688c1 is described below

commit b0de688c1bc0861c8712cee4649234130053c974
Author: Nikita Timofeev <stari...@gmail.com>
AuthorDate: Fri Jul 8 11:03:15 2022 +0300

    CAY-2744 Remove ROP support
     - cleanup client related docs, references, etc.
---
 README.md                                          |   2 +-
 assembly/pom.xml                                   |  12 -
 .../src/test/resources/lifecycle-map.map.xml       |   1 -
 .../org/apache/cayenne/tools/exclude_Table.map.xml |   3 +-
 .../org/apache/cayenne/tools/test_datamap.map.xml  |   3 +-
 .../_cayenne-guide/configurationProperties.adoc    |  45 --
 .../asciidoc/_cayenne-guide/part1/modeler.adoc     |   4 -
 .../_cayenne-guide/part6/gradle-plugin.adoc        |  11 -
 .../_cayenne-guide/part6/maven-plugin.adoc         |   4 -
 .../_cayenne-guide/serviceCollections.adoc         |   8 +-
 docs/doc/pom.xml                                   |   6 -
 maven-plugins/cayenne-tools-itest/pom.xml          |  14 -
 .../src/test/resources/testmap-client.map.xml      | 730 ---------------------
 13 files changed, 5 insertions(+), 838 deletions(-)

diff --git a/README.md b/README.md
index b3f922461..28e889671 100644
--- a/README.md
+++ b/README.md
@@ -291,7 +291,7 @@ https://cayenne.apache.org/docs/4.2/api/
 About
 -----
 
-With a wealth of unique and powerful features, Cayenne can address a wide 
range of persistence needs. Cayenne seamlessly binds one or more database 
schemas directly to Java objects, managing atomic commit and rollbacks, SQL 
generation, joins, sequences, and more. With Cayenne's Remote Object 
Persistence, those Java objects can even be persisted out to clients via Web 
Services.
+With a wealth of unique and powerful features, Cayenne can address a wide 
range of persistence needs. Cayenne seamlessly binds one or more database 
schemas directly to Java objects, managing atomic commit and rollbacks, SQL 
generation, joins, sequences, and more.
 
 Cayenne is designed to be easy to use, without sacrificing flexibility or 
design. To that end, Cayenne supports database reverse engineering and 
generation, as well as a Velocity-based class generation engine. All of these 
functions can be controlled directly through the CayenneModeler, a fully 
functional GUI tool. No cryptic XML or annotation based configuration is 
required! An entire database schema can be mapped directly to Java objects 
within minutes, all from the comfort of the GUI- [...]
 
diff --git a/assembly/pom.xml b/assembly/pom.xml
index f06b895a6..eae6335cf 100644
--- a/assembly/pom.xml
+++ b/assembly/pom.xml
@@ -46,12 +46,6 @@
                        <version>${project.version}</version>
                </dependency>
 
-               <dependency>
-                       <groupId>org.apache.cayenne</groupId>
-                       <artifactId>cayenne-client</artifactId>
-                       <version>${project.version}</version>
-               </dependency>
-
                <dependency>
                        <groupId>org.apache.cayenne</groupId>
                        <artifactId>cayenne-dbsync</artifactId>
@@ -154,12 +148,6 @@
                        <version>${project.version}</version>
                </dependency>
 
-               <dependency>
-                       <groupId>org.apache.cayenne</groupId>
-                       <artifactId>cayenne-rop-server</artifactId>
-                       <version>${project.version}</version>
-               </dependency>
-
        </dependencies>
 
        <build>
diff --git a/cayenne-commitlog/src/test/resources/lifecycle-map.map.xml 
b/cayenne-commitlog/src/test/resources/lifecycle-map.map.xml
index fc3bb20bd..a5d062289 100644
--- a/cayenne-commitlog/src/test/resources/lifecycle-map.map.xml
+++ b/cayenne-commitlog/src/test/resources/lifecycle-map.map.xml
@@ -148,6 +148,5 @@
                <overwrite>false</overwrite>
                <createPropertyNames>false</createPropertyNames>
                <createPKProperties>false</createPKProperties>
-               <client>false</client>
        </cgen>
 </data-map>
diff --git 
a/cayenne-gradle-plugin/src/test/resources/org/apache/cayenne/tools/exclude_Table.map.xml
 
b/cayenne-gradle-plugin/src/test/resources/org/apache/cayenne/tools/exclude_Table.map.xml
index 53cf27b51..29427d901 100644
--- 
a/cayenne-gradle-plugin/src/test/resources/org/apache/cayenne/tools/exclude_Table.map.xml
+++ 
b/cayenne-gradle-plugin/src/test/resources/org/apache/cayenne/tools/exclude_Table.map.xml
@@ -23,7 +23,6 @@
           project-version="10">
 
     <property name="defaultPackage" value="org.example.cayenne.persistent"/>
-    <property name="defaultClientPackage" value="tmp"/>
     <db-entity name="City">
         <db-attribute name="id" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
         <db-attribute name="name" type="VARCHAR" length="255"/>
@@ -36,7 +35,7 @@
     <obj-entity name="City" className="org.example.cayenne.persistent.City" 
dbEntityName="City">
         <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="name"/>
     </obj-entity>
-    <obj-entity name="Artist" 
className="org.example.cayenne.persistent.Artist" clientClassName="tmp.Artist" 
dbEntityName="artist">
+    <obj-entity name="Artist" 
className="org.example.cayenne.persistent.Artist" dbEntityName="artist">
         <obj-attribute name="birthDate" type="java.util.Date" 
db-attribute-path="birth_date"/>
         <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="name"/>
     </obj-entity>
diff --git 
a/cayenne-gradle-plugin/src/test/resources/org/apache/cayenne/tools/test_datamap.map.xml
 
b/cayenne-gradle-plugin/src/test/resources/org/apache/cayenne/tools/test_datamap.map.xml
index 53cf27b51..29427d901 100644
--- 
a/cayenne-gradle-plugin/src/test/resources/org/apache/cayenne/tools/test_datamap.map.xml
+++ 
b/cayenne-gradle-plugin/src/test/resources/org/apache/cayenne/tools/test_datamap.map.xml
@@ -23,7 +23,6 @@
           project-version="10">
 
     <property name="defaultPackage" value="org.example.cayenne.persistent"/>
-    <property name="defaultClientPackage" value="tmp"/>
     <db-entity name="City">
         <db-attribute name="id" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
         <db-attribute name="name" type="VARCHAR" length="255"/>
@@ -36,7 +35,7 @@
     <obj-entity name="City" className="org.example.cayenne.persistent.City" 
dbEntityName="City">
         <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="name"/>
     </obj-entity>
-    <obj-entity name="Artist" 
className="org.example.cayenne.persistent.Artist" clientClassName="tmp.Artist" 
dbEntityName="artist">
+    <obj-entity name="Artist" 
className="org.example.cayenne.persistent.Artist" dbEntityName="artist">
         <obj-attribute name="birthDate" type="java.util.Date" 
db-attribute-path="birth_date"/>
         <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="name"/>
     </obj-entity>
diff --git 
a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/configurationProperties.adoc
 
b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/configurationProperties.adoc
index d41834677..e09da4494 100644
--- 
a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/configurationProperties.adoc
+++ 
b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/configurationProperties.adoc
@@ -103,48 +103,3 @@ Note that the property names below are defined as 
constants in `org.apache.cayen
    defines an optional name of the runtime DataDomain.
    If not specified, the name is inferred from the configuration name.
    ** Default value: none
-
-* `cayenne.rop.service_url`
-   defines the URL of the ROP server
-    ** Default value: none
-
-* `cayenne.rop.service_username`
-   defines the user name for an ROP client to login to an ROP server.
-    ** Default value: none
-
-* `cayenne.rop.service_password`
-   defines the password for an ROP client to login to an ROP server.
-    ** Default value: none
-
-* `cayenne.rop.shared_session_name`
-   defines the name of the shared session that an ROP client wants to join on 
an ROP server. If omitted, a dedicated session is created.
-    ** Default value: none
-
-* `cayenne.rop.service.timeout`
-   a value in milliseconds for the ROP client-server connection read operation 
timeout
-    ** Possible values: any positive long value
-    ** Default value: none
-
-* `cayenne.rop.channel_events`
-   defines whether client-side DataChannel should dispatch events to child 
ObjectContexts.
-   If set to true, ObjectContexts will receive commit events and merge changes 
committed by peer contexts that passed through the common client DataChannel.
-    ** Possible values: true, false
-    ** Default value: false
-
-* `cayenne.rop.context_change_events`
-   defines whether object property changes in the client context result in 
firing events. Client UI components can listen to these events and update the 
UI. Disabled by default.
-    ** Possible values: true, false
-    ** Default value: false
-
-* `cayenne.rop.context_lifecycle_events`
-   defines whether object commit and rollback operations in the client context 
result in firing events.
-   Client UI components can listen to these events and update the UI. Disabled 
by default.
-    ** Possible values: true,false
-    ** Default value: false
-
-* `cayenne.server.rop_event_bridge_factory`
-   defines the name of the `org.apache.cayenne.event.EventBridgeFactory` that 
is passed from the ROP server to the client.
-   I.e. server DI would provide a name of the factory, passing this name to 
the client via the wire.
-   The client would instantiate it to receive events from the server. Note 
that this property is stored
-   in `cayenne.server.rop_event_bridge_properties` map, not in the main 
`cayenne.properties`.
-   ** Default value: false
diff --git 
a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part1/modeler.adoc
 
b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part1/modeler.adoc
index ffec99c02..9298ea5a7 100644
--- 
a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part1/modeler.adoc
+++ 
b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part1/modeler.adoc
@@ -37,10 +37,6 @@ There is three default types of code generation
 
 Default type of generation suitable for almost all cases. Use this type unless 
you now what exactly you need to customize.
 
-- *Client Persistent Objects*
-
-This type is for generating code for client part of a ROP setup.
-
 - *Advanced*
 
 In advanced mode you can control almost all aspects of code generation 
including custom templates for java code. See default Cayenne templates on 
GitHub as an example.
diff --git 
a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part6/gradle-plugin.adoc
 
b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part6/gradle-plugin.adoc
index 85d98f68b..3a2e78cc7 100644
--- 
a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part6/gradle-plugin.adoc
+++ 
b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part6/gradle-plugin.adoc
@@ -55,23 +55,12 @@ Here is how you can change settings of the default `cgen` 
task:
 [source, Groovy]
 ----
 cgen {
-    client = false
     mode = 'all'
     overwrite = true
     createPropertyNames = true
 }
 ----
 
-And here is example of how to define additional cgen task (e.g. for client 
classes if you are using ROP):
-
-
-[source, Groovy]
-----
-task clientCgen(type: cayenne.cgen) {
-    client = true
-}
-----
-
 ==== cdbimport
 
 This task is for creating and synchronizing your Cayenne model from database 
schema. Full list of parameters are same
diff --git 
a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part6/maven-plugin.adoc
 
b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part6/maven-plugin.adoc
index 510bf4c1e..085480076 100644
--- 
a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part6/maven-plugin.adoc
+++ 
b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/part6/maven-plugin.adoc
@@ -55,10 +55,6 @@ ${project.basedir}/src/main/resources/my.map.xml
 .^|File
 .^|A directory that contains additional DataMap XML files that may be needed 
to resolve cross-DataMap relationships for the the main DataMap, for which 
class generation occurs.
 
-.^|client
-.^|boolean
-.^|Whether we are generating classes for the client tier in a Remote Object 
Persistence application. "False" by default.
-
 .^|destDir
 .^|File
 .^|Root destination directory for Java classes (ignoring their package names). 
The default is "src/main/java".
diff --git 
a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/serviceCollections.adoc
 
b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/serviceCollections.adoc
index 1519d040f..5cbc1cfe6 100644
--- 
a/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/serviceCollections.adoc
+++ 
b/docs/asciidoc/cayenne-guide/src/docs/asciidoc/_cayenne-guide/serviceCollections.adoc
@@ -17,14 +17,14 @@
 Note that the collection keys below are defined as constants in 
`org.apache.cayenne.configuration.Constants` interface.
 
 [#serviceCollections.table.table-bordered]
-.Service Collection Keys Present in ServerRuntime and/or ClientRuntime
+.Service Collection Keys Present in ServerRuntime
 [cols="3,2,3"]
 |===
 |Collection Property |Type |Description
 
 .^|`cayenne.properties`
 .^|`Map<String,String>`
-.^|Properties used by built-in Cayenne services. The keys in this map are the 
property names from the table in Appendix A. Separate copies of this map exist 
on the server and ROP client.
+.^|Properties used by built-in Cayenne services. The keys in this map are the 
property names from the table in Appendix A.
 
 .^|`cayenne.server.adapter_detectors`
 .^|`List<DbAdapterDetector>`
@@ -50,8 +50,4 @@ Note that the collection keys below are defined as constants 
in `org.apache.caye
 .^|`List<ExtendedTypeFactory>`
 .^|Stores default and user-provided ExtendedTypeFactories. ExtendedTypeFactory 
allows to define ExtendedTypes dynamically for the whole group of Java classes. 
E.g. Cayenne supplies a factory to map all Enums regardless of their type.
 
-.^|`cayenne.server.rop_event_bridge_properties`
-.^|`Map<String, String>`
-.^|Stores event bridge properties passed to the ROP client on bootstrap. This 
means that the map is configured by server DI, and passed to the client via the 
wire. The properties in this map are specific to EventBridgeFactory 
implementation (e.g JMS or XMPP connection prameters). One common property is 
`"cayenne.server.rop_event_bridge_factory"` that defines the type of the 
factory.
-
 |===
\ No newline at end of file
diff --git a/docs/doc/pom.xml b/docs/doc/pom.xml
index 551690549..b2676906d 100644
--- a/docs/doc/pom.xml
+++ b/docs/doc/pom.xml
@@ -130,12 +130,6 @@
                                                                                
        <version>${project.version}</version>
                                                                                
        <classifier>sources</classifier>
                                                                                
</artifactItem>
-                                                                               
<artifactItem>
-                                                                               
        <groupId>org.apache.cayenne</groupId>
-                                                                               
        <artifactId>cayenne-client</artifactId>
-                                                                               
        <version>${project.version}</version>
-                                                                               
        <classifier>sources</classifier>
-                                                                               
</artifactItem>
                                                                        
</artifactItems>
                                                                </configuration>
                                                        </execution>
diff --git a/maven-plugins/cayenne-tools-itest/pom.xml 
b/maven-plugins/cayenne-tools-itest/pom.xml
index f70a4cfe7..f418a26bc 100644
--- a/maven-plugins/cayenne-tools-itest/pom.xml
+++ b/maven-plugins/cayenne-tools-itest/pom.xml
@@ -150,20 +150,6 @@
                           
<superPkg>org.apache.cayenne.testdo.testmap.superart</superPkg>
                         </configuration>
                     </execution>
-                    <execution>
-                        <id>pairs1-client</id>
-                        <goals>
-                            <goal>cgen</goal>
-                        </goals>
-                        <configuration>
-                          <map>${testResourceDir}/testmap-client.map.xml</map>
-                          
<destDir>${generatedClassesDir}/pairs1-client</destDir>
-                          <client>true</client>
-                          <makePairs>true</makePairs>
-                          <usePkgPath>true</usePkgPath>
-                          
<superPkg>org.apache.cayenne.testdo.testmap.client.superart</superPkg>
-                        </configuration>
-                    </execution>
                     <execution>
                         <id>pairs-embeddables3</id>
                         <goals>
diff --git 
a/maven-plugins/cayenne-tools-itest/src/test/resources/testmap-client.map.xml 
b/maven-plugins/cayenne-tools-itest/src/test/resources/testmap-client.map.xml
deleted file mode 100644
index 87145d504..000000000
--- 
a/maven-plugins/cayenne-tools-itest/src/test/resources/testmap-client.map.xml
+++ /dev/null
@@ -1,730 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap";
-        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-        xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap 
http://cayenne.apache.org/schema/10/modelMap.xsd";
-        project-version="10">
-       <property name="defaultPackage" 
value="org.apache.cayenne.testdo.testmap"/>
-       <property name="defaultSuperclass" 
value="org.apache.cayenne.CayenneDataObject"/>
-       <property name="clientSupported" value="true"/>
-       <property name="defaultClientPackage" 
value="org.apache.cayenne.testdo.testmap.client"/>
-       <property name="defaultClientSuperclass" 
value="org.apache.cayenne.PersistentObject"/>
-       <procedure name="cayenne_tst_out_proc">
-               <procedure-parameter name="in_param" type="INTEGER" 
direction="in"/>
-               <procedure-parameter name="out_param" type="INTEGER" 
direction="out"/>
-       </procedure>
-       <procedure name="cayenne_tst_select_proc">
-               <procedure-parameter name="aName" type="VARCHAR" length="254" 
direction="in"/>
-               <procedure-parameter name="paintingPrice" type="INTEGER" 
direction="in"/>
-       </procedure>
-       <procedure name="cayenne_tst_upd_proc">
-               <procedure-parameter name="paintingPrice" type="INTEGER" 
direction="in"/>
-       </procedure>
-       <procedure name="cayenne_tst_upd_proc2"/>
-       <db-entity name="ARRAYS_ENTITY">
-               <db-attribute name="BYTE_ARRAY" type="VARBINARY" length="200"/>
-               <db-attribute name="BYTE_WRAPPER_ARRAY" type="VARBINARY" 
length="200"/>
-               <db-attribute name="CHAR_ARRAY" type="VARCHAR" length="200"/>
-               <db-attribute name="CHAR_WRAPPER_ARRAY" type="VARCHAR" 
length="200"/>
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-       </db-entity>
-       <db-entity name="ARTGROUP">
-               <db-attribute name="GROUP_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
-               <db-attribute name="NAME" type="VARCHAR" isMandatory="true" 
length="100"/>
-               <db-attribute name="PARENT_GROUP_ID" type="INTEGER"/>
-       </db-entity>
-       <db-entity name="ARTIST">
-               <db-attribute name="ARTIST_ID" type="BIGINT" 
isPrimaryKey="true" isMandatory="true"/>
-               <db-attribute name="ARTIST_NAME" type="CHAR" isMandatory="true" 
length="254"/>
-               <db-attribute name="DATE_OF_BIRTH" type="DATE"/>
-       </db-entity>
-       <db-entity name="ARTIST_CT">
-               <db-attribute name="ARTIST_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
-               <db-attribute name="ARTIST_NAME" type="CHAR" isMandatory="true" 
length="254"/>
-               <db-attribute name="DATE_OF_BIRTH" type="DATE"/>
-       </db-entity>
-       <db-entity name="ARTIST_EXHIBIT">
-               <db-attribute name="ARTIST_ID" type="BIGINT" 
isPrimaryKey="true" isMandatory="true"/>
-               <db-attribute name="EXHIBIT_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
-       </db-entity>
-       <db-entity name="ARTIST_GROUP">
-               <db-attribute name="ARTIST_ID" type="BIGINT" 
isPrimaryKey="true" isMandatory="true"/>
-               <db-attribute name="GROUP_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
-       </db-entity>
-       <db-entity name="BIGDECIMAL_ENTITY">
-               <db-attribute name="BIGDECIMAL_FIELD" type="NUMERIC" 
length="12" scale="2"/>
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-       </db-entity>
-       <db-entity name="BIGINTEGER_ENTITY">
-               <db-attribute name="BIG_INTEGER_FIELD" type="BIGINT"/>
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-       </db-entity>
-       <db-entity name="BINARY_PK_TEST1">
-               <db-attribute name="BIN_ID" type="VARBINARY" 
isPrimaryKey="true" isMandatory="true" length="32"/>
-               <db-attribute name="NAME" type="VARCHAR" length="10"/>
-       </db-entity>
-       <db-entity name="BINARY_PK_TEST2">
-               <db-attribute name="DETAIL_NAME" type="VARCHAR" length="10"/>
-               <db-attribute name="FK_ID" type="VARBINARY" length="32"/>
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-       </db-entity>
-       <db-entity name="BIT_TEST">
-               <db-attribute name="BIT_COLUMN" type="BIT" isMandatory="true"/>
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-       </db-entity>
-       <db-entity name="BLOB_TEST">
-               <db-attribute name="BLOB_COL" type="BLOB"/>
-               <db-attribute name="BLOB_TEST_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
-       </db-entity>
-       <db-entity name="BOOLEAN_TEST">
-               <db-attribute name="BOOLEAN_COLUMN" type="BOOLEAN" 
isMandatory="true"/>
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-       </db-entity>
-       <db-entity name="CALENDAR_TEST">
-               <db-attribute name="CALENDAR_FIELD" type="TIMESTAMP"/>
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-       </db-entity>
-       <db-entity name="CHARACTER_ENTITY">
-               <db-attribute name="CHARACTER_FIELD" type="CHAR" length="1"/>
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-       </db-entity>
-       <db-entity name="CHAR_FK_TEST">
-               <db-attribute name="FK_COL" type="CHAR" length="10"/>
-               <db-attribute name="NAME" type="VARCHAR" length="100"/>
-               <db-attribute name="PK" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-       </db-entity>
-       <db-entity name="CHAR_PK_TEST">
-               <db-attribute name="OTHER_COL" type="CHAR" length="10"/>
-               <db-attribute name="PK_COL" type="CHAR" isPrimaryKey="true" 
isMandatory="true" length="10"/>
-       </db-entity>
-       <db-entity name="CLOB_TEST">
-               <db-attribute name="CLOB_COL" type="CLOB"/>
-               <db-attribute name="CLOB_TEST_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
-       </db-entity>
-       <db-entity name="CLOB_TEST_RELATION">
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-               <db-attribute name="ID_CLOB" type="INTEGER" isMandatory="true"/>
-               <db-attribute name="VALUE" type="INTEGER"/>
-       </db-entity>
-       <db-entity name="COMPOUND_FK_TEST">
-               <db-attribute name="F_KEY1" type="VARCHAR" length="20"/>
-               <db-attribute name="F_KEY2" type="VARCHAR" length="20"/>
-               <db-attribute name="NAME" type="VARCHAR" length="255"/>
-               <db-attribute name="PKEY" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-       </db-entity>
-       <db-entity name="COMPOUND_PK_TEST">
-               <db-attribute name="KEY1" type="VARCHAR" isPrimaryKey="true" 
isMandatory="true" length="20"/>
-               <db-attribute name="KEY2" type="VARCHAR" isPrimaryKey="true" 
isMandatory="true" length="20"/>
-               <db-attribute name="NAME" type="VARCHAR" length="255"/>
-       </db-entity>
-       <db-entity name="DATE_TEST">
-               <db-attribute name="DATE_COLUMN" type="DATE"/>
-               <db-attribute name="DATE_TEST_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
-               <db-attribute name="TIMESTAMP_COLUMN" type="TIMESTAMP"/>
-               <db-attribute name="TIME_COLUMN" type="TIME"/>
-       </db-entity>
-       <db-entity name="DECIMAL_PK_TST">
-               <db-attribute name="DECIMAL_PK" type="DECIMAL" 
isPrimaryKey="true" isMandatory="true"/>
-               <db-attribute name="NAME" type="VARCHAR" length="100"/>
-       </db-entity>
-       <db-entity name="ENUM_ENTITY">
-               <db-attribute name="ENUM_ATTRIBUTE" type="VARCHAR" 
length="250"/>
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-       </db-entity>
-       <db-entity name="EXHIBIT">
-               <db-attribute name="CLOSING_DATE" type="TIMESTAMP" 
isMandatory="true"/>
-               <db-attribute name="EXHIBIT_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
-               <db-attribute name="GALLERY_ID" type="INTEGER" 
isMandatory="true"/>
-               <db-attribute name="OPENING_DATE" type="TIMESTAMP" 
isMandatory="true"/>
-       </db-entity>
-       <db-entity name="EXTENDED_TYPE_TEST">
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-               <db-attribute name="NAME" type="VARCHAR" length="200"/>
-       </db-entity>
-       <db-entity name="FLOAT_TEST">
-               <db-attribute name="FLOAT_COL" type="FLOAT"/>
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-       </db-entity>
-       <db-entity name="GALLERY">
-               <db-attribute name="GALLERY_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
-               <db-attribute name="GALLERY_NAME" type="VARCHAR" 
isMandatory="true" length="100"/>
-       </db-entity>
-       <db-entity name="GENERATED_COLUMN_COMP_KEY">
-               <db-attribute name="AUTO_PK" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-               <db-attribute name="GENERATED_COLUMN" type="INTEGER" 
isPrimaryKey="true" isGenerated="true" isMandatory="true"/>
-               <db-attribute name="NAME" type="VARCHAR" length="100"/>
-               <db-attribute name="PROPAGATED_PK" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
-       </db-entity>
-       <db-entity name="GENERATED_COLUMN_COMP_M">
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-               <db-attribute name="NAME" type="VARCHAR" length="100"/>
-       </db-entity>
-       <db-entity name="GENERATED_COLUMN_DEP">
-               <db-attribute name="GENERATED_COLUMN_FK" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
-               <db-attribute name="NAME" type="VARCHAR" length="100"/>
-       </db-entity>
-       <db-entity name="GENERATED_COLUMN_TEST">
-               <db-attribute name="GENERATED_COLUMN" type="INTEGER" 
isPrimaryKey="true" isGenerated="true" isMandatory="true"/>
-               <db-attribute name="NAME" type="VARCHAR" length="250"/>
-       </db-entity>
-       <db-entity name="GENERATED_COLUMN_TEST2">
-               <db-attribute name="GENERATED_COLUMN" type="INTEGER" 
isPrimaryKey="true" isGenerated="true" isMandatory="true"/>
-               <db-attribute name="NAME" type="VARCHAR" length="100"/>
-       </db-entity>
-       <db-entity name="GENERATED_F1">
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-       </db-entity>
-       <db-entity name="GENERATED_F2">
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-       </db-entity>
-       <db-entity name="GENERATED_JOIN">
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isGenerated="true" isMandatory="true"/>
-               <db-attribute name="ID1" type="INTEGER"/>
-               <db-attribute name="ID2" type="INTEGER"/>
-       </db-entity>
-       <db-entity name="LONG_ENTITY">
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-               <db-attribute name="LONG_FIELD" type="BIGINT"/>
-       </db-entity>
-       <db-entity name="MEANINGFUL_PK_DEP">
-               <db-attribute name="DESCR" type="VARCHAR" length="50"/>
-               <db-attribute name="MASTER_PK" type="INTEGER"/>
-               <db-attribute name="PK_ATTRIBUTE" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
-       </db-entity>
-       <db-entity name="MEANINGFUL_PK_TEST1">
-               <db-attribute name="DESCR" type="VARCHAR" length="50"/>
-               <db-attribute name="PK_ATTRIBUTE" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
-       </db-entity>
-       <db-entity name="MIXED_PERSISTENCE_STRATEGY">
-               <db-attribute name="DESCRIPTION" type="VARCHAR" length="200"/>
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-               <db-attribute name="NAME" type="VARCHAR" length="200"/>
-       </db-entity>
-       <db-entity name="MIXED_PERSISTENCE_STRATEGY2">
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-               <db-attribute name="MASTER_ID" type="INTEGER"/>
-               <db-attribute name="NAME" type="VARCHAR" length="200"/>
-       </db-entity>
-       <db-entity name="NO_PK_TEST">
-               <db-attribute name="ATTRIBUTE1" type="INTEGER"/>
-       </db-entity>
-       <db-entity name="PAINTING">
-               <db-attribute name="ARTIST_ID" type="BIGINT"/>
-               <db-attribute name="ESTIMATED_PRICE" type="DECIMAL" length="10" 
scale="2"/>
-               <db-attribute name="GALLERY_ID" type="INTEGER"/>
-               <db-attribute name="PAINTING_DESCRIPTION" type="VARCHAR" 
length="255"/>
-               <db-attribute name="PAINTING_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
-               <db-attribute name="PAINTING_TITLE" type="VARCHAR" 
isMandatory="true" length="255"/>
-       </db-entity>
-       <db-entity name="PAINTING1">
-               <db-attribute name="ARTIST_ID" type="BIGINT"/>
-               <db-attribute name="ESTIMATED_PRICE" type="DECIMAL" length="10" 
scale="2"/>
-               <db-attribute name="GALLERY_ID" type="INTEGER"/>
-               <db-attribute name="PAINTING_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
-               <db-attribute name="PAINTING_TITLE" type="VARCHAR" 
isMandatory="true" length="255"/>
-       </db-entity>
-       <db-entity name="PAINTING_INFO">
-               <db-attribute name="IMAGE_BLOB" type="LONGVARBINARY"/>
-               <db-attribute name="PAINTING_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
-               <db-attribute name="TEXT_REVIEW" type="LONGVARCHAR"/>
-       </db-entity>
-       <db-entity name="PRIMITIVES_TEST">
-               <db-attribute name="BOOLEAN_COLUMN" type="BOOLEAN"/>
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-               <db-attribute name="INT_COLUMN" type="INTEGER"/>
-       </db-entity>
-       <db-entity name="SERIALIZABLE_ENTITY">
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-               <db-attribute name="SERIALIZABLE_FIELD" type="BLOB"/>
-       </db-entity>
-       <db-entity name="SMALLINT_TEST">
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-               <db-attribute name="SMALLINT_COL" type="SMALLINT"/>
-       </db-entity>
-       <db-entity name="TINYINT_TEST">
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-               <db-attribute name="TINYINT_COL" type="TINYINT"/>
-       </db-entity>
-       <db-entity name="TYPES_MAPPING_TEST1">
-               <db-attribute name="AAAID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-               <db-attribute name="BIGINT_COLUMN" type="BIGINT"/>
-               <db-attribute name="BIT_COLUMN" type="BIT"/>
-               <db-attribute name="BOOLEAN_COLUMN" type="BOOLEAN"/>
-               <db-attribute name="CHAR_COLUMN" type="CHAR" length="254"/>
-               <db-attribute name="CLOB_COLUMN" type="CLOB"/>
-               <db-attribute name="DATE_COLUMN" type="DATE"/>
-               <db-attribute name="DECIMAL_COLUMN" type="DECIMAL" length="12" 
scale="5"/>
-               <db-attribute name="DOUBLE_COLUMN" type="DOUBLE" scale="7"/>
-               <db-attribute name="FLOAT_COLUMN" type="FLOAT" scale="3"/>
-               <db-attribute name="INTEGER_COLUMN" type="INTEGER"/>
-               <db-attribute name="LONGVARCHAR_COLUMN" type="LONGVARCHAR"/>
-               <db-attribute name="NUMERIC_COLUMN" type="NUMERIC" length="12" 
scale="5"/>
-               <db-attribute name="REAL_COLUMN" type="REAL" scale="5"/>
-               <db-attribute name="SMALLINT_COLUMN" type="SMALLINT"/>
-               <db-attribute name="TIMESTAMP_COLUMN" type="TIMESTAMP"/>
-               <db-attribute name="TIME_COLUMN" type="TIME"/>
-               <db-attribute name="TINYINT_COLUMN" type="TINYINT"/>
-               <db-attribute name="VARCHAR_COLUMN" type="VARCHAR" 
length="255"/>
-       </db-entity>
-       <db-entity name="TYPES_MAPPING_TEST2">
-               <db-attribute name="AAAID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-               <db-attribute name="BINARY_COLUMN" type="BINARY" length="14"/>
-               <db-attribute name="BLOB_COLUMN" type="BLOB"/>
-               <db-attribute name="LONGVARBINARY_COLUMN" type="LONGVARBINARY"/>
-               <db-attribute name="VARBINARY_COLUMN" type="VARBINARY" 
length="1000"/>
-       </db-entity>
-       <db-entity name="UUID_TEST">
-               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-               <db-attribute name="UUID" type="VARCHAR" length="100"/>
-       </db-entity>
-       <obj-entity name="ArraysEntity" 
className="org.apache.cayenne.testdo.misc_types.ArraysEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.ArraysEntity" 
dbEntityName="ARRAYS_ENTITY">
-               <obj-attribute name="byteArray" type="byte[]" 
db-attribute-path="BYTE_ARRAY"/>
-               <obj-attribute name="byteWrapperArray" type="java.lang.Byte[]" 
db-attribute-path="BYTE_WRAPPER_ARRAY"/>
-               <obj-attribute name="charArray" type="char[]" 
db-attribute-path="CHAR_ARRAY"/>
-               <obj-attribute name="charWrapperArray" 
type="java.lang.Character[]" db-attribute-path="CHAR_WRAPPER_ARRAY"/>
-       </obj-entity>
-       <obj-entity name="ArtGroup" 
className="org.apache.cayenne.testdo.testmap.ArtGroup" 
clientClassName="org.apache.cayenne.testdo.testmap.client.ArtGroup" 
dbEntityName="ARTGROUP">
-               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-       </obj-entity>
-       <obj-entity name="Artist" 
className="org.apache.cayenne.testdo.testmap.Artist" 
clientClassName="org.apache.cayenne.testdo.testmap.client.Artist" 
dbEntityName="ARTIST">
-               <obj-attribute name="artistName" type="java.lang.String" 
db-attribute-path="ARTIST_NAME"/>
-               <obj-attribute name="dateOfBirth" type="java.util.Date" 
db-attribute-path="DATE_OF_BIRTH"/>
-       </obj-entity>
-       <obj-entity name="ArtistCallbackTest" 
className="org.apache.cayenne.testdo.testmap.ArtistCallbackTest" 
clientClassName="org.apache.cayenne.testdo.testmap.client.ArtistCallbackTest" 
dbEntityName="ARTIST_CT">
-               <obj-attribute name="artistName" type="java.lang.String"/>
-               <obj-attribute name="dateOfBirth" type="java.util.Date"/>
-               <post-add method-name="prePersistEntityObjEntity"/>
-               <post-persist method-name="postPersistEntityObjEntity"/>
-               <pre-update method-name="preUpdateEntityObjEntity"/>
-               <post-update method-name="postUpdateEntityObjEntity"/>
-               <pre-remove method-name="preRemoveEntityObjEntity"/>
-               <post-remove method-name="postRemoveEntityObjEntity"/>
-               <post-load method-name="postLoadEntityObjEntity"/>
-       </obj-entity>
-       <obj-entity name="ArtistExhibit" 
className="org.apache.cayenne.testdo.testmap.ArtistExhibit" 
clientClassName="org.apache.cayenne.testdo.testmap.client.ArtistExhibit" 
dbEntityName="ARTIST_EXHIBIT"/>
-       <obj-entity name="BigDecimalEntity" 
className="org.apache.cayenne.testdo.numeric_types.BigDecimalEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.BigDecimalEntity" 
dbEntityName="BIGDECIMAL_ENTITY">
-               <obj-attribute name="bigDecimalField" 
type="java.math.BigDecimal" db-attribute-path="BIGDECIMAL_FIELD"/>
-       </obj-entity>
-       <obj-entity name="BigIntegerEntity" 
className="org.apache.cayenne.testdo.numeric_types.BigIntegerEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.BigIntegerEntity" 
dbEntityName="BIGINTEGER_ENTITY">
-               <obj-attribute name="bigIntegerField" 
type="java.math.BigInteger" db-attribute-path="BIG_INTEGER_FIELD"/>
-       </obj-entity>
-       <obj-entity name="BinaryPKTest1" 
className="org.apache.cayenne.testdo.binary_pk.BinaryPKTest1" 
clientClassName="org.apache.cayenne.testdo.testmap.client.BinaryPKTest1" 
dbEntityName="BINARY_PK_TEST1">
-               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-       </obj-entity>
-       <obj-entity name="BinaryPKTest2" 
className="org.apache.cayenne.testdo.binary_pk.BinaryPKTest2" 
clientClassName="org.apache.cayenne.testdo.testmap.client.BinaryPKTest2" 
dbEntityName="BINARY_PK_TEST2">
-               <obj-attribute name="detailName" type="java.lang.String" 
db-attribute-path="DETAIL_NAME"/>
-       </obj-entity>
-       <obj-entity name="BitNumberTestEntity" 
className="org.apache.cayenne.testdo.numeric_types.BitNumberTestEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.BitNumberTestEntity" 
dbEntityName="BIT_TEST">
-               <obj-attribute name="bitColumn" type="java.lang.Integer" 
db-attribute-path="BIT_COLUMN"/>
-       </obj-entity>
-       <obj-entity name="BitTestEntity" 
className="org.apache.cayenne.testdo.numeric_types.BitTestEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.BitTestEntity" 
dbEntityName="BIT_TEST">
-               <obj-attribute name="bitColumn" type="java.lang.Boolean" 
db-attribute-path="BIT_COLUMN"/>
-       </obj-entity>
-       <obj-entity name="BlobTestEntity" 
className="org.apache.cayenne.testdo.lob.BlobTestEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.BlobTestEntity" 
dbEntityName="BLOB_TEST">
-               <obj-attribute name="blobCol" type="byte[]" 
db-attribute-path="BLOB_COL"/>
-       </obj-entity>
-       <obj-entity name="BooleanTestEntity" 
className="org.apache.cayenne.testdo.numeric_types.BooleanTestEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.BooleanTestEntity" 
dbEntityName="BOOLEAN_TEST">
-               <obj-attribute name="booleanColumn" type="java.lang.Boolean" 
db-attribute-path="BOOLEAN_COLUMN"/>
-       </obj-entity>
-       <obj-entity name="CalendarEntity" 
className="org.apache.cayenne.testdo.date_time.CalendarEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.CalendarEntity" 
dbEntityName="CALENDAR_TEST">
-               <obj-attribute name="calendarField" type="java.util.Calendar" 
db-attribute-path="CALENDAR_FIELD"/>
-       </obj-entity>
-       <obj-entity name="CharFkTestEntity" 
className="org.apache.cayenne.testdo.compound.CharFkTestEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.CharFkTestEntity" 
dbEntityName="CHAR_FK_TEST">
-               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-       </obj-entity>
-       <obj-entity name="CharPkTestEntity" 
className="org.apache.cayenne.testdo.compound.CharPkTestEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.CharPkTestEntity" 
dbEntityName="CHAR_PK_TEST">
-               <obj-attribute name="otherCol" type="java.lang.String" 
db-attribute-path="OTHER_COL"/>
-               <obj-attribute name="pkCol" type="java.lang.String" 
db-attribute-path="PK_COL"/>
-       </obj-entity>
-       <obj-entity name="CharacterEntity" 
className="org.apache.cayenne.testdo.misc_types.CharacterEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.CharacterEntity" 
dbEntityName="CHARACTER_ENTITY">
-               <obj-attribute name="characterField" type="java.lang.Character" 
db-attribute-path="CHARACTER_FIELD"/>
-       </obj-entity>
-       <obj-entity name="ClobTestEntity" 
className="org.apache.cayenne.testdo.lob.ClobTestEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.ClobTestEntity" 
dbEntityName="CLOB_TEST">
-               <obj-attribute name="clobCol" type="java.lang.String" 
db-attribute-path="CLOB_COL"/>
-       </obj-entity>
-       <obj-entity name="ClobTestRelation" 
className="org.apache.cayenne.testdo.lob.ClobTestRelation" 
clientClassName="org.apache.cayenne.testdo.testmap.client.ClobTestRelation" 
dbEntityName="CLOB_TEST_RELATION">
-               <obj-attribute name="id" type="java.lang.Integer" 
db-attribute-path="ID"/>
-               <obj-attribute name="value" type="java.lang.Integer" 
db-attribute-path="VALUE"/>
-       </obj-entity>
-       <obj-entity name="CompoundFkTestEntity" 
className="org.apache.cayenne.testdo.compound.CompoundFkTestEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.CompoundFkTestEntity" 
dbEntityName="COMPOUND_FK_TEST">
-               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-       </obj-entity>
-       <obj-entity name="CompoundPainting" 
className="org.apache.cayenne.testdo.testmap.CompoundPainting" 
clientClassName="org.apache.cayenne.testdo.testmap.client.CompoundPainting" 
dbEntityName="PAINTING">
-               <obj-attribute name="artistName" type="java.lang.String" 
db-attribute-path="toArtist.ARTIST_NAME"/>
-               <obj-attribute name="estimatedPrice" 
type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/>
-               <obj-attribute name="galleryName" type="java.lang.String" 
db-attribute-path="toGallery.GALLERY_NAME"/>
-               <obj-attribute name="paintingTitle" type="java.lang.String" 
db-attribute-path="PAINTING_TITLE"/>
-               <obj-attribute name="textReview" type="java.lang.String" 
db-attribute-path="toPaintingInfo.TEXT_REVIEW"/>
-       </obj-entity>
-       <obj-entity name="CompoundPkTestEntity" 
className="org.apache.cayenne.testdo.compound.CompoundPkTestEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.CompoundPkTestEntity" 
dbEntityName="COMPOUND_PK_TEST">
-               <obj-attribute name="key1" type="java.lang.String" 
db-attribute-path="KEY1"/>
-               <obj-attribute name="key2" type="java.lang.String" 
db-attribute-path="KEY2"/>
-               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-       </obj-entity>
-       <obj-entity name="DateTestEntity" 
className="org.apache.cayenne.testdo.date_time.DateTestEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.DateTestEntity" 
dbEntityName="DATE_TEST">
-               <obj-attribute name="dateColumn" type="java.util.Date" 
db-attribute-path="DATE_COLUMN"/>
-               <obj-attribute name="timeColumn" type="java.util.Date" 
db-attribute-path="TIME_COLUMN"/>
-               <obj-attribute name="timestampColumn" type="java.util.Date" 
db-attribute-path="TIMESTAMP_COLUMN"/>
-       </obj-entity>
-       <obj-entity name="DecimalPKTest1" 
className="org.apache.cayenne.testdo.numeric_types.DecimalPKTest1" 
clientClassName="org.apache.cayenne.testdo.testmap.client.DecimalPKTest1" 
dbEntityName="DECIMAL_PK_TST">
-               <obj-attribute name="decimalPK" type="java.lang.Double" 
db-attribute-path="DECIMAL_PK"/>
-               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-       </obj-entity>
-       <obj-entity name="DecimalPKTestEntity" 
className="org.apache.cayenne.testdo.numeric_types.DecimalPKTestEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.DecimalPKTestEntity" 
dbEntityName="DECIMAL_PK_TST">
-               <obj-attribute name="decimalPK" type="java.math.BigDecimal" 
db-attribute-path="DECIMAL_PK"/>
-               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-       </obj-entity>
-       <obj-entity name="EnumEntity" 
className="org.apache.cayenne.testdo.enum_test.EnumEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.EnumEntity" 
dbEntityName="ENUM_ENTITY">
-               <obj-attribute name="enumAttribute" 
type="org.apache.cayenne.testdo.enum_test.Enum1" 
db-attribute-path="ENUM_ATTRIBUTE"/>
-       </obj-entity>
-       <obj-entity name="Exhibit" 
className="org.apache.cayenne.testdo.testmap.Exhibit" 
clientClassName="org.apache.cayenne.testdo.testmap.client.Exhibit" 
dbEntityName="EXHIBIT">
-               <obj-attribute name="closingDate" type="java.util.Date" 
db-attribute-path="CLOSING_DATE"/>
-               <obj-attribute name="openingDate" type="java.util.Date" 
db-attribute-path="OPENING_DATE"/>
-       </obj-entity>
-       <obj-entity name="ExtendedTypeEntity" 
className="org.apache.cayenne.testdo.extended_type.ExtendedTypeEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.ExtendedTypeEntity" 
dbEntityName="EXTENDED_TYPE_TEST">
-               <obj-attribute name="name" 
type="org.apache.cayenne.testdo.extended_type.StringET1" 
db-attribute-path="NAME"/>
-       </obj-entity>
-       <obj-entity name="Gallery" 
className="org.apache.cayenne.testdo.testmap.Gallery" 
clientClassName="org.apache.cayenne.testdo.testmap.client.Gallery" 
dbEntityName="GALLERY">
-               <obj-attribute name="galleryName" type="java.lang.String" 
db-attribute-path="GALLERY_NAME"/>
-       </obj-entity>
-       <obj-entity name="GeneratedColumnCompKey" 
className="org.apache.cayenne.testdo.generated.GeneratedColumnCompKey" 
clientClassName="org.apache.cayenne.testdo.testmap.client.GeneratedColumnCompKey"
 dbEntityName="GENERATED_COLUMN_COMP_KEY">
-               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-       </obj-entity>
-       <obj-entity name="GeneratedColumnCompMaster" 
className="org.apache.cayenne.testdo.generated.GeneratedColumnCompMaster" 
clientClassName="org.apache.cayenne.testdo.testmap.client.GeneratedColumnCompMaster"
 dbEntityName="GENERATED_COLUMN_COMP_M">
-               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-       </obj-entity>
-       <obj-entity name="GeneratedColumnDep" 
className="org.apache.cayenne.testdo.generated.GeneratedColumnDep" 
clientClassName="org.apache.cayenne.testdo.testmap.client.GeneratedColumnDep" 
dbEntityName="GENERATED_COLUMN_DEP">
-               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-       </obj-entity>
-       <obj-entity name="GeneratedColumnTest2" 
className="org.apache.cayenne.testdo.generated.GeneratedColumnTest2" 
clientClassName="org.apache.cayenne.testdo.testmap.client.GeneratedColumnTest2" 
dbEntityName="GENERATED_COLUMN_TEST2">
-               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-       </obj-entity>
-       <obj-entity name="GeneratedColumnTestEntity" 
className="org.apache.cayenne.testdo.generated.GeneratedColumnTestEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.GeneratedColumnTestEntity"
 dbEntityName="GENERATED_COLUMN_TEST">
-               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-       </obj-entity>
-       <obj-entity name="GeneratedF1" 
className="org.apache.cayenne.testdo.generated.GeneratedF1" 
clientClassName="org.apache.cayenne.testdo.testmap.client.GeneratedF1" 
dbEntityName="GENERATED_F1" 
superClassName="org.apache.cayenne.CayenneDataObject" 
clientSuperClassName="org.apache.cayenne.PersistentObject"/>
-       <obj-entity name="GeneratedF2" 
className="org.apache.cayenne.testdo.generated.GeneratedF2" 
clientClassName="org.apache.cayenne.testdo.testmap.client.GeneratedF2" 
dbEntityName="GENERATED_F2" 
superClassName="org.apache.cayenne.CayenneDataObject" 
clientSuperClassName="org.apache.cayenne.PersistentObject"/>
-       <obj-entity name="LongEntity" 
className="org.apache.cayenne.testdo.numeric_types.LongEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.LongEntity" 
dbEntityName="LONG_ENTITY">
-               <obj-attribute name="longField" type="java.lang.Long" 
db-attribute-path="LONG_FIELD"/>
-       </obj-entity>
-       <obj-entity name="MeaningfulGeneratedColumnTestEntity" 
className="org.apache.cayenne.testdo.testmap.MeaningfulGeneratedColumnTestEntity"
 
clientClassName="org.apache.cayenne.testdo.testmap.client.MeaningfulGeneratedColumnTestEntity"
 dbEntityName="GENERATED_COLUMN_TEST">
-               <obj-attribute name="generatedColumn" type="java.lang.Integer" 
db-attribute-path="GENERATED_COLUMN"/>
-               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-       </obj-entity>
-       <obj-entity name="MeaningfulPKDep" 
className="org.apache.cayenne.testdo.meaningful_pk.MeaningfulPKDep" 
clientClassName="org.apache.cayenne.testdo.testmap.client.MeaningfulPKDep" 
dbEntityName="MEANINGFUL_PK_DEP">
-               <obj-attribute name="descr" type="java.lang.String" 
db-attribute-path="DESCR"/>
-       </obj-entity>
-       <obj-entity name="MeaningfulPKTest1" 
className="org.apache.cayenne.testdo.meaningful_pk.MeaningfulPKTest1" 
clientClassName="org.apache.cayenne.testdo.testmap.client.MeaningfulPKTest1" 
dbEntityName="MEANINGFUL_PK_TEST1">
-               <obj-attribute name="descr" type="java.lang.String" 
db-attribute-path="DESCR"/>
-               <obj-attribute name="pkAttribute" type="java.lang.Integer" 
db-attribute-path="PK_ATTRIBUTE"/>
-       </obj-entity>
-       <obj-entity name="MixedPersistenceStrategy" 
className="org.apache.cayenne.testdo.mixed_persistence_strategy.MixedPersistenceStrategy"
 
clientClassName="org.apache.cayenne.testdo.testmap.client.MixedPersistenceStrategy"
 dbEntityName="MIXED_PERSISTENCE_STRATEGY">
-               <obj-attribute name="description" type="java.lang.String" 
db-attribute-path="DESCRIPTION"/>
-               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-       </obj-entity>
-       <obj-entity name="MixedPersistenceStrategy2" 
className="org.apache.cayenne.testdo.mixed_persistence_strategy.MixedPersistenceStrategy2"
 
clientClassName="org.apache.cayenne.testdo.testmap.client.MixedPersistenceStrategy2"
 dbEntityName="MIXED_PERSISTENCE_STRATEGY2">
-               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-       </obj-entity>
-       <obj-entity name="NoPkTestEntity" 
className="org.apache.cayenne.testdo.no_pk.NoPkTestEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.NoPkTestEntity" 
dbEntityName="NO_PK_TEST">
-               <obj-attribute name="attribute1" type="java.lang.Integer" 
db-attribute-path="ATTRIBUTE1"/>
-       </obj-entity>
-       <obj-entity name="Painting" 
className="org.apache.cayenne.testdo.testmap.Painting" 
clientClassName="org.apache.cayenne.testdo.testmap.client.Painting" 
dbEntityName="PAINTING" 
superClassName="org.apache.cayenne.testdo.testmap.ArtDataObject">
-               <obj-attribute name="estimatedPrice" 
type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/>
-               <obj-attribute name="paintingDescription" 
type="java.lang.String" db-attribute-path="PAINTING_DESCRIPTION"/>
-               <obj-attribute name="paintingTitle" type="java.lang.String" 
db-attribute-path="PAINTING_TITLE"/>
-       </obj-entity>
-       <obj-entity name="Painting1" 
className="org.apache.cayenne.testdo.testmap.Painting1" 
clientClassName="org.apache.cayenne.testdo.testmap.client.Painting1" 
dbEntityName="PAINTING1">
-               <obj-attribute name="estimatedPrice" 
type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/>
-               <obj-attribute name="paintingTitle" type="java.lang.String" 
db-attribute-path="PAINTING_TITLE"/>
-       </obj-entity>
-       <obj-entity name="PaintingInfo" 
className="org.apache.cayenne.testdo.testmap.PaintingInfo" 
clientClassName="org.apache.cayenne.testdo.testmap.client.PaintingInfo" 
dbEntityName="PAINTING_INFO">
-               <obj-attribute name="imageBlob" type="byte[]" 
db-attribute-path="IMAGE_BLOB"/>
-               <obj-attribute name="textReview" type="java.lang.String" 
db-attribute-path="TEXT_REVIEW"/>
-       </obj-entity>
-       <obj-entity name="PrimitivesTestEntity" 
className="org.apache.cayenne.testdo.primitive.PrimitivesTestEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.PrimitivesTestEntity" 
dbEntityName="PRIMITIVES_TEST">
-               <obj-attribute name="booleanColumn" type="boolean" 
db-attribute-path="BOOLEAN_COLUMN"/>
-               <obj-attribute name="intColumn" type="int" 
db-attribute-path="INT_COLUMN"/>
-       </obj-entity>
-       <obj-entity name="ROArtist" 
className="org.apache.cayenne.testdo.testmap.ROArtist" 
clientClassName="org.apache.cayenne.testdo.testmap.client.ROArtist" 
readOnly="true" dbEntityName="ARTIST">
-               <obj-attribute name="artistName" type="java.lang.String" 
db-attribute-path="ARTIST_NAME"/>
-               <obj-attribute name="dateOfBirth" type="java.sql.Date" 
db-attribute-path="DATE_OF_BIRTH"/>
-       </obj-entity>
-       <obj-entity name="ROPainting" 
className="org.apache.cayenne.testdo.testmap.ROPainting" 
clientClassName="org.apache.cayenne.testdo.testmap.client.ROPainting" 
readOnly="true" dbEntityName="PAINTING">
-               <obj-attribute name="estimatedPrice" 
type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/>
-               <obj-attribute name="paintingTitle" type="java.lang.String" 
db-attribute-path="PAINTING_TITLE"/>
-       </obj-entity>
-       <obj-entity name="RWCompoundPainting" 
className="org.apache.cayenne.testdo.testmap.RWCompoundPainting" 
clientClassName="org.apache.cayenne.testdo.testmap.client.RWCompoundPainting" 
dbEntityName="PAINTING">
-               <obj-attribute name="estimatedPrice" 
type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/>
-               <obj-attribute name="paintingTitle" type="java.lang.String" 
db-attribute-path="PAINTING_TITLE"/>
-               <obj-attribute name="textReview" type="java.lang.String" 
db-attribute-path="toPaintingInfo.TEXT_REVIEW"/>
-       </obj-entity>
-       <obj-entity name="ReturnTypesMap1" 
className="org.apache.cayenne.testdo.return_types.ReturnTypesMap1" 
clientClassName="org.apache.cayenne.testdo.testmap.client.ReturnTypesMap1" 
dbEntityName="TYPES_MAPPING_TEST1" 
superClassName="org.apache.cayenne.CayenneDataObject" 
clientSuperClassName="org.apache.cayenne.PersistentObject">
-               <obj-attribute name="bigintColumn" type="java.lang.Long" 
db-attribute-path="BIGINT_COLUMN"/>
-               <obj-attribute name="bitColumn" type="java.lang.Boolean" 
db-attribute-path="BIT_COLUMN"/>
-               <obj-attribute name="booleanColumn" type="java.lang.Boolean" 
db-attribute-path="BOOLEAN_COLUMN"/>
-               <obj-attribute name="charColumn" type="java.lang.String" 
db-attribute-path="CHAR_COLUMN"/>
-               <obj-attribute name="clobColumn" type="java.lang.String" 
db-attribute-path="CLOB_COLUMN"/>
-               <obj-attribute name="dateColumn" type="java.util.Date" 
db-attribute-path="DATE_COLUMN"/>
-               <obj-attribute name="decimalColumn" type="java.math.BigDecimal" 
db-attribute-path="DECIMAL_COLUMN"/>
-               <obj-attribute name="doubleColumn" type="java.lang.Double" 
db-attribute-path="DOUBLE_COLUMN"/>
-               <obj-attribute name="floatColumn" type="java.lang.Float" 
db-attribute-path="FLOAT_COLUMN"/>
-               <obj-attribute name="integerColumn" type="java.lang.Integer" 
db-attribute-path="INTEGER_COLUMN"/>
-               <obj-attribute name="longvarcharColumn" type="java.lang.String" 
db-attribute-path="LONGVARCHAR_COLUMN"/>
-               <obj-attribute name="numericColumn" type="java.math.BigDecimal" 
db-attribute-path="NUMERIC_COLUMN"/>
-               <obj-attribute name="realColumn" type="java.lang.Float" 
db-attribute-path="REAL_COLUMN"/>
-               <obj-attribute name="smallintColumn" type="java.lang.Short" 
db-attribute-path="SMALLINT_COLUMN"/>
-               <obj-attribute name="timeColumn" type="java.util.Date" 
db-attribute-path="TIME_COLUMN"/>
-               <obj-attribute name="timestampColumn" type="java.util.Date" 
db-attribute-path="TIMESTAMP_COLUMN"/>
-               <obj-attribute name="tinyintColumn" type="java.lang.Byte" 
db-attribute-path="TINYINT_COLUMN"/>
-               <obj-attribute name="varcharColumn" type="java.lang.String" 
db-attribute-path="VARCHAR_COLUMN"/>
-       </obj-entity>
-       <obj-entity name="ReturnTypesMap2" 
className="org.apache.cayenne.testdo.return_types.ReturnTypesMap2" 
clientClassName="org.apache.cayenne.testdo.testmap.client.ReturnTypesMap2" 
dbEntityName="TYPES_MAPPING_TEST2" 
superClassName="org.apache.cayenne.CayenneDataObject" 
clientSuperClassName="org.apache.cayenne.PersistentObject">
-               <obj-attribute name="binaryColumn" type="byte[]" 
db-attribute-path="BINARY_COLUMN"/>
-               <obj-attribute name="blobColumn" type="byte[]" 
db-attribute-path="BLOB_COLUMN"/>
-               <obj-attribute name="longvarbinaryColumn" type="byte[]" 
db-attribute-path="LONGVARBINARY_COLUMN"/>
-               <obj-attribute name="varbinaryColumn" type="byte[]" 
db-attribute-path="VARBINARY_COLUMN"/>
-       </obj-entity>
-       <obj-entity name="SerializableEntity" 
className="org.apache.cayenne.testdo.misc_types.SerializableEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.SerializableEntity" 
dbEntityName="SERIALIZABLE_ENTITY">
-               <obj-attribute name="serializableField" 
type="org.apache.cayenne.MockSerializable" 
db-attribute-path="SERIALIZABLE_FIELD"/>
-       </obj-entity>
-       <obj-entity name="SmallintTestEntity" 
className="org.apache.cayenne.testdo.numeric_types.SmallintTestEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.SmallintTestEntity" 
dbEntityName="SMALLINT_TEST">
-               <obj-attribute name="smallintCol" type="java.lang.Short" 
db-attribute-path="SMALLINT_COL"/>
-       </obj-entity>
-       <obj-entity name="SubPainting" 
className="org.apache.cayenne.testdo.testmap.SubPainting" 
clientClassName="org.apache.cayenne.testdo.testmap.client.SubPainting" 
dbEntityName="PAINTING">
-               <obj-attribute name="paintingTitle" type="java.lang.String" 
db-attribute-path="PAINTING_TITLE"/>
-       </obj-entity>
-       <obj-entity name="TinyintTestEntity" 
className="org.apache.cayenne.testdo.numeric_types.TinyintTestEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.TinyintTestEntity" 
dbEntityName="TINYINT_TEST">
-               <obj-attribute name="tinyintCol" type="java.lang.Byte" 
db-attribute-path="TINYINT_COL"/>
-       </obj-entity>
-       <obj-entity name="UuidTestEntity" 
className="org.apache.cayenne.testdo.uuid.UuidTestEntity" 
clientClassName="org.apache.cayenne.testdo.testmap.client.UuidTestEntity" 
dbEntityName="UUID_TEST">
-               <obj-attribute name="uuid" type="java.util.UUID" 
db-attribute-path="UUID"/>
-       </obj-entity>
-       <db-relationship name="artistGroupArray" source="ARTGROUP" 
target="ARTIST_GROUP" toMany="true">
-               <db-attribute-pair source="GROUP_ID" target="GROUP_ID"/>
-       </db-relationship>
-       <db-relationship name="toChildGroups" source="ARTGROUP" 
target="ARTGROUP" toMany="true">
-               <db-attribute-pair source="GROUP_ID" target="PARENT_GROUP_ID"/>
-       </db-relationship>
-       <db-relationship name="toParentGroup" source="ARTGROUP" 
target="ARTGROUP">
-               <db-attribute-pair source="PARENT_GROUP_ID" target="GROUP_ID"/>
-       </db-relationship>
-       <db-relationship name="artistExhibitArray" source="ARTIST" 
target="ARTIST_EXHIBIT" toDependentPK="true" toMany="true">
-               <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
-       </db-relationship>
-       <db-relationship name="artistGroupArray" source="ARTIST" 
target="ARTIST_GROUP" toMany="true">
-               <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
-       </db-relationship>
-       <db-relationship name="paintingArray" source="ARTIST" target="PAINTING" 
toMany="true">
-               <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
-       </db-relationship>
-       <db-relationship name="toArtist" source="ARTIST_EXHIBIT" 
target="ARTIST">
-               <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
-       </db-relationship>
-       <db-relationship name="toExhibit" source="ARTIST_EXHIBIT" 
target="EXHIBIT">
-               <db-attribute-pair source="EXHIBIT_ID" target="EXHIBIT_ID"/>
-       </db-relationship>
-       <db-relationship name="toArtist" source="ARTIST_GROUP" target="ARTIST">
-               <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
-       </db-relationship>
-       <db-relationship name="toGroup" source="ARTIST_GROUP" target="ARTGROUP">
-               <db-attribute-pair source="GROUP_ID" target="GROUP_ID"/>
-       </db-relationship>
-       <db-relationship name="binaryPKDetails" source="BINARY_PK_TEST1" 
target="BINARY_PK_TEST2" toMany="true">
-               <db-attribute-pair source="BIN_ID" target="FK_ID"/>
-       </db-relationship>
-       <db-relationship name="toBinaryPKMaster" source="BINARY_PK_TEST2" 
target="BINARY_PK_TEST1">
-               <db-attribute-pair source="FK_ID" target="BIN_ID"/>
-       </db-relationship>
-       <db-relationship name="toCharPK" source="CHAR_FK_TEST" 
target="CHAR_PK_TEST">
-               <db-attribute-pair source="FK_COL" target="PK_COL"/>
-       </db-relationship>
-       <db-relationship name="charFKs" source="CHAR_PK_TEST" 
target="CHAR_FK_TEST" toMany="true">
-               <db-attribute-pair source="PK_COL" target="FK_COL"/>
-       </db-relationship>
-       <db-relationship name="clob" source="CLOB_TEST" 
target="CLOB_TEST_RELATION" toMany="true">
-               <db-attribute-pair source="CLOB_TEST_ID" target="ID_CLOB"/>
-       </db-relationship>
-       <db-relationship name="CLOB_REL" source="CLOB_TEST_RELATION" 
target="CLOB_TEST">
-               <db-attribute-pair source="ID_CLOB" target="CLOB_TEST_ID"/>
-       </db-relationship>
-       <db-relationship name="toCompoundPk" source="COMPOUND_FK_TEST" 
target="COMPOUND_PK_TEST">
-               <db-attribute-pair source="F_KEY1" target="KEY1"/>
-               <db-attribute-pair source="F_KEY2" target="KEY2"/>
-       </db-relationship>
-       <db-relationship name="compoundFkArray" source="COMPOUND_PK_TEST" 
target="COMPOUND_FK_TEST" toMany="true">
-               <db-attribute-pair source="KEY1" target="F_KEY1"/>
-               <db-attribute-pair source="KEY2" target="F_KEY2"/>
-       </db-relationship>
-       <db-relationship name="artistExhibitArray" source="EXHIBIT" 
target="ARTIST_EXHIBIT" toDependentPK="true" toMany="true">
-               <db-attribute-pair source="EXHIBIT_ID" target="EXHIBIT_ID"/>
-       </db-relationship>
-       <db-relationship name="toGallery" source="EXHIBIT" target="GALLERY">
-               <db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/>
-       </db-relationship>
-       <db-relationship name="exhibitArray" source="GALLERY" target="EXHIBIT" 
toMany="true">
-               <db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/>
-       </db-relationship>
-       <db-relationship name="paintingArray" source="GALLERY" 
target="PAINTING" toMany="true">
-               <db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/>
-       </db-relationship>
-       <db-relationship name="toMaster" source="GENERATED_COLUMN_COMP_KEY" 
target="GENERATED_COLUMN_COMP_M">
-               <db-attribute-pair source="PROPAGATED_PK" target="ID"/>
-       </db-relationship>
-       <db-relationship name="toDetail" source="GENERATED_COLUMN_COMP_M" 
target="GENERATED_COLUMN_COMP_KEY" toDependentPK="true" toMany="true">
-               <db-attribute-pair source="ID" target="PROPAGATED_PK"/>
-       </db-relationship>
-       <db-relationship name="toMaster" source="GENERATED_COLUMN_DEP" 
target="GENERATED_COLUMN_TEST">
-               <db-attribute-pair source="GENERATED_COLUMN_FK" 
target="GENERATED_COLUMN"/>
-       </db-relationship>
-       <db-relationship name="toDep" source="GENERATED_COLUMN_TEST" 
target="GENERATED_COLUMN_DEP" toDependentPK="true">
-               <db-attribute-pair source="GENERATED_COLUMN" 
target="GENERATED_COLUMN_FK"/>
-       </db-relationship>
-       <db-relationship name="join" source="GENERATED_F1" 
target="GENERATED_JOIN" toMany="true">
-               <db-attribute-pair source="ID" target="ID1"/>
-       </db-relationship>
-       <db-relationship name="join" source="GENERATED_F2" 
target="GENERATED_JOIN" toMany="true">
-               <db-attribute-pair source="ID" target="ID2"/>
-       </db-relationship>
-       <db-relationship name="f1" source="GENERATED_JOIN" 
target="GENERATED_F1">
-               <db-attribute-pair source="ID1" target="ID"/>
-       </db-relationship>
-       <db-relationship name="f2" source="GENERATED_JOIN" 
target="GENERATED_F2">
-               <db-attribute-pair source="ID2" target="ID"/>
-       </db-relationship>
-       <db-relationship name="toMeaningfulPK" source="MEANINGFUL_PK_DEP" 
target="MEANINGFUL_PK_TEST1">
-               <db-attribute-pair source="MASTER_PK" target="PK_ATTRIBUTE"/>
-       </db-relationship>
-       <db-relationship name="meaningfulPKDepArray" 
source="MEANINGFUL_PK_TEST1" target="MEANINGFUL_PK_DEP" toMany="true">
-               <db-attribute-pair source="PK_ATTRIBUTE" target="MASTER_PK"/>
-       </db-relationship>
-       <db-relationship name="details" source="MIXED_PERSISTENCE_STRATEGY" 
target="MIXED_PERSISTENCE_STRATEGY2" toMany="true">
-               <db-attribute-pair source="ID" target="MASTER_ID"/>
-       </db-relationship>
-       <db-relationship name="master" source="MIXED_PERSISTENCE_STRATEGY2" 
target="MIXED_PERSISTENCE_STRATEGY">
-               <db-attribute-pair source="MASTER_ID" target="ID"/>
-       </db-relationship>
-       <db-relationship name="toArtist" source="PAINTING" target="ARTIST">
-               <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
-       </db-relationship>
-       <db-relationship name="toGallery" source="PAINTING" target="GALLERY">
-               <db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/>
-       </db-relationship>
-       <db-relationship name="toPaintingInfo" source="PAINTING" 
target="PAINTING_INFO" toDependentPK="true">
-               <db-attribute-pair source="PAINTING_ID" target="PAINTING_ID"/>
-       </db-relationship>
-       <db-relationship name="toArtist" source="PAINTING1" target="ARTIST">
-               <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
-       </db-relationship>
-       <db-relationship name="painting" source="PAINTING_INFO" 
target="PAINTING">
-               <db-attribute-pair source="PAINTING_ID" target="PAINTING_ID"/>
-       </db-relationship>
-       <obj-relationship name="artistArray" source="ArtGroup" target="Artist" 
deleteRule="Nullify" db-relationship-path="artistGroupArray.toArtist"/>
-       <obj-relationship name="childGroupsArray" source="ArtGroup" 
target="ArtGroup" deleteRule="Nullify" db-relationship-path="toChildGroups"/>
-       <obj-relationship name="toParentGroup" source="ArtGroup" 
target="ArtGroup" deleteRule="Nullify" db-relationship-path="toParentGroup"/>
-       <obj-relationship name="artistExhibitArray" source="Artist" 
target="ArtistExhibit" deleteRule="Cascade" 
db-relationship-path="artistExhibitArray"/>
-       <obj-relationship name="groupArray" source="Artist" target="ArtGroup" 
deleteRule="Cascade" db-relationship-path="artistGroupArray.toGroup"/>
-       <obj-relationship name="paintingArray" source="Artist" 
target="Painting" deleteRule="Cascade" db-relationship-path="paintingArray"/>
-       <obj-relationship name="toArtist" source="ArtistExhibit" 
target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/>
-       <obj-relationship name="toExhibit" source="ArtistExhibit" 
target="Exhibit" deleteRule="Nullify" db-relationship-path="toExhibit"/>
-       <obj-relationship name="binaryPKDetails" source="BinaryPKTest1" 
target="BinaryPKTest2" db-relationship-path="binaryPKDetails"/>
-       <obj-relationship name="toBinaryPKMaster" source="BinaryPKTest2" 
target="BinaryPKTest1" db-relationship-path="toBinaryPKMaster"/>
-       <obj-relationship name="toCharPK" source="CharFkTestEntity" 
target="CharPkTestEntity" db-relationship-path="toCharPK"/>
-       <obj-relationship name="charFKs" source="CharPkTestEntity" 
target="CharFkTestEntity" db-relationship-path="charFKs"/>
-       <obj-relationship name="clobValue" source="ClobTestEntity" 
target="ClobTestRelation" db-relationship-path="clob"/>
-       <obj-relationship name="clobId" source="ClobTestRelation" 
target="ClobTestEntity" db-relationship-path="CLOB_REL"/>
-       <obj-relationship name="toCompoundPk" source="CompoundFkTestEntity" 
target="CompoundPkTestEntity" db-relationship-path="toCompoundPk"/>
-       <obj-relationship name="toArtist" source="CompoundPainting" 
target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/>
-       <obj-relationship name="toGallery" source="CompoundPainting" 
target="Gallery" deleteRule="Nullify" db-relationship-path="toGallery"/>
-       <obj-relationship name="toPaintingInfo" source="CompoundPainting" 
target="PaintingInfo" deleteRule="Cascade" 
db-relationship-path="toPaintingInfo"/>
-       <obj-relationship name="compoundFkArray" source="CompoundPkTestEntity" 
target="CompoundFkTestEntity" db-relationship-path="compoundFkArray"/>
-       <obj-relationship name="artistExhibitArray" source="Exhibit" 
target="ArtistExhibit" deleteRule="Cascade" 
db-relationship-path="artistExhibitArray"/>
-       <obj-relationship name="toGallery" source="Exhibit" target="Gallery" 
deleteRule="Nullify" db-relationship-path="toGallery"/>
-       <obj-relationship name="exhibitArray" source="Gallery" target="Exhibit" 
deleteRule="Cascade" db-relationship-path="exhibitArray"/>
-       <obj-relationship name="paintingArray" source="Gallery" 
target="Painting" deleteRule="Deny" db-relationship-path="paintingArray"/>
-       <obj-relationship name="toMaster" source="GeneratedColumnCompKey" 
target="GeneratedColumnCompMaster" db-relationship-path="toMaster"/>
-       <obj-relationship name="toDetail" source="GeneratedColumnCompMaster" 
target="GeneratedColumnCompKey" db-relationship-path="toDetail"/>
-       <obj-relationship name="toMaster" source="GeneratedColumnDep" 
target="GeneratedColumnTestEntity" db-relationship-path="toMaster"/>
-       <obj-relationship name="toDep" source="GeneratedColumnTestEntity" 
target="GeneratedColumnDep" db-relationship-path="toDep"/>
-       <obj-relationship name="f2" source="GeneratedF1" target="GeneratedF2" 
deleteRule="Nullify" db-relationship-path="join.f2"/>
-       <obj-relationship name="f1" source="GeneratedF2" target="GeneratedF1" 
deleteRule="Nullify" db-relationship-path="join.f1"/>
-       <obj-relationship name="toMeaningfulPK" source="MeaningfulPKDep" 
target="MeaningfulPKTest1" db-relationship-path="toMeaningfulPK"/>
-       <obj-relationship name="meaningfulPKDepArray" 
source="MeaningfulPKTest1" target="MeaningfulPKDep" 
db-relationship-path="meaningfulPKDepArray"/>
-       <obj-relationship name="details" source="MixedPersistenceStrategy" 
target="MixedPersistenceStrategy2" db-relationship-path="details"/>
-       <obj-relationship name="master" source="MixedPersistenceStrategy2" 
target="MixedPersistenceStrategy" db-relationship-path="master"/>
-       <obj-relationship name="toArtist" source="Painting" target="Artist" 
deleteRule="Nullify" db-relationship-path="toArtist"/>
-       <obj-relationship name="toGallery" source="Painting" target="Gallery" 
deleteRule="Nullify" db-relationship-path="toGallery"/>
-       <obj-relationship name="toPaintingInfo" source="Painting" 
target="PaintingInfo" deleteRule="Cascade" 
db-relationship-path="toPaintingInfo"/>
-       <obj-relationship name="toArtist" source="Painting1" target="Artist" 
deleteRule="Nullify" db-relationship-path="toArtist"/>
-       <obj-relationship name="painting" source="PaintingInfo" 
target="Painting" deleteRule="Nullify" db-relationship-path="painting"/>
-       <obj-relationship name="paintingArray" source="ROArtist" 
target="Painting" deleteRule="Deny" db-relationship-path="paintingArray"/>
-       <obj-relationship name="toArtist" source="ROPainting" target="Artist" 
deleteRule="Nullify" db-relationship-path="toArtist"/>
-       <query name="EjbqlQueryTest" type="EJBQLQuery">
-               <property name="cayenne.GenericSelectQuery.cacheStrategy" 
value="SHARED_CACHE"/>
-               <property name="cayenne.GenericSelectQuery.fetchingDataRows" 
value="true"/>
-               <ejbql><![CDATA[select a from Artist a]]></ejbql>
-       </query>
-       <query name="NonSelectingQuery" type="SQLTemplate" root="data-map" 
root-name="testmap-client">
-               <property name="cayenne.SQLTemplate.columnNameCapitalization" 
value="UPPER"/>
-               <sql><![CDATA[INSERT INTO PAINTING (PAINTING_ID, 
PAINTING_TITLE, ESTIMATED_PRICE)
-VALUES (512, 'No Painting Like This', 12.5)]]></sql>
-               <sql 
adapter-class="org.apache.cayenne.dba.db2.DB2Adapter"><![CDATA[INSERT INTO 
PAINTING (PAINTING_ID, PAINTING_TITLE, ESTIMATED_PRICE) VALUES (512, 'No 
Painting Like This', 12.5)]]></sql>
-       </query>
-       <query name="ObjectQuery" type="SelectQuery" root="obj-entity" 
root-name="Painting">
-               <qualifier><![CDATA[toArtist = $artist]]></qualifier>
-               <ordering><![CDATA[paintingTitle]]></ordering>
-       </query>
-       <query name="ParameterizedNonSelectingQuery" type="SQLTemplate" 
root="data-map" root-name="testmap-client">
-               <sql><![CDATA[INSERT INTO PAINTING (PAINTING_ID, 
PAINTING_TITLE, ESTIMATED_PRICE)
-VALUES (#bind($id), #bind($title), #bind($price))]]></sql>
-               <sql 
adapter-class="org.apache.cayenne.dba.db2.DB2Adapter"><![CDATA[INSERT INTO 
PAINTING (PAINTING_ID, PAINTING_TITLE, ESTIMATED_PRICE) values (#bind($id), 
#bind($title), #bind($price))]]></sql>
-       </query>
-       <query name="ParameterizedQueryWithLocalCache" type="SelectQuery" 
root="obj-entity" root-name="Artist">
-               <property name="cayenne.GenericSelectQuery.cacheStrategy" 
value="LOCAL_CACHE"/>
-               <qualifier><![CDATA[artistName like $name]]></qualifier>
-       </query>
-       <query name="ParameterizedQueryWithSharedCache" type="SelectQuery" 
root="obj-entity" root-name="Artist">
-               <property name="cayenne.GenericSelectQuery.cacheStrategy" 
value="SHARED_CACHE"/>
-               <qualifier><![CDATA[artistName like $name]]></qualifier>
-       </query>
-       <query name="ProcedureQuery" type="ProcedureQuery" root="procedure" 
root-name="cayenne_tst_select_proc" result-entity="Artist"/>
-       <query name="QueryWithLocalCache" type="SelectQuery" root="obj-entity" 
root-name="Artist">
-               <property name="cayenne.GenericSelectQuery.cacheStrategy" 
value="LOCAL_CACHE"/>
-       </query>
-       <query name="QueryWithOrdering" type="SelectQuery" root="obj-entity" 
root-name="Artist">
-               <ordering descending="true" 
ignore-case="true"><![CDATA[artistName]]></ordering>
-               <ordering><![CDATA[dateOfBirth]]></ordering>
-       </query>
-       <query name="QueryWithPrefetch" type="SelectQuery" root="obj-entity" 
root-name="Gallery">
-               <prefetch>paintingArray</prefetch>
-       </query>
-       <query name="QueryWithQualifier" type="SelectQuery" root="obj-entity" 
root-name="Artist">
-               <qualifier><![CDATA[artistName = $param1]]></qualifier>
-       </query>
-       <query name="QueryWithSharedCache" type="SelectQuery" root="obj-entity" 
root-name="Artist">
-               <property name="cayenne.GenericSelectQuery.cacheStrategy" 
value="SHARED_CACHE"/>
-       </query>
-       <query name="SelectDateTest" type="SQLTemplate" root="data-map" 
root-name="testmap-client">
-               <property name="cayenne.SQLTemplate.columnNameCapitalization" 
value="UPPER"/>
-               <property name="cayenne.GenericSelectQuery.fetchingDataRows" 
value="true"/>
-               <sql><![CDATA[SELECT * FROM DATE_TEST]]></sql>
-       </query>
-       <query name="SelectReturnTypesMap1" type="SQLTemplate" root="data-map" 
root-name="testmap-client">
-               <property name="cayenne.SQLTemplate.columnNameCapitalization" 
value="UPPER"/>
-               <property name="cayenne.GenericSelectQuery.fetchingDataRows" 
value="true"/>
-               <sql><![CDATA[SELECT * FROM TYPES_MAPPING_TEST1]]></sql>
-       </query>
-       <query name="SelectReturnTypesMap2" type="SQLTemplate" root="data-map" 
root-name="testmap-client">
-               <property name="cayenne.SQLTemplate.columnNameCapitalization" 
value="UPPER"/>
-               <property name="cayenne.GenericSelectQuery.fetchingDataRows" 
value="true"/>
-               <sql><![CDATA[SELECT * FROM TYPES_MAPPING_TEST2]]></sql>
-       </query>
-       <query name="SelectTestLower" type="SQLTemplate" root="data-map" 
root-name="testmap-client">
-               <property name="cayenne.SQLTemplate.columnNameCapitalization" 
value="LOWER"/>
-               <property name="cayenne.GenericSelectQuery.fetchingDataRows" 
value="true"/>
-               <sql><![CDATA[select * from ARTIST]]></sql>
-       </query>
-       <query name="SelectTestUpper" type="SQLTemplate" root="data-map" 
root-name="testmap-client">
-               <property name="cayenne.SQLTemplate.columnNameCapitalization" 
value="UPPER"/>
-               <property name="cayenne.GenericSelectQuery.fetchingDataRows" 
value="true"/>
-               <sql><![CDATA[select * from ARTIST]]></sql>
-       </query>
-</data-map>

Reply via email to