You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2014/11/14 18:47:24 UTC

[23/50] [abbrv] cayenne git commit: Refactor Multi Tier Project

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteRule.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteRule.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteRule.java
deleted file mode 100644
index 351b127..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteRule.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import java.util.List;
-
-import org.apache.cayenne.PersistentObject;
-import org.apache.cayenne.testdo.mt.ClientMtDeleteCascade;
-import org.apache.cayenne.testdo.mt.ClientMtDeleteDeny;
-import org.apache.cayenne.testdo.mt.ClientMtDeleteNullify;
-
-/**
- * A generated persistent class mapped as "MtDeleteRule" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtDeleteRule extends PersistentObject {
-
-    public static final String NAME_PROPERTY = "name";
-    public static final String FROM_CASCADE_PROPERTY = "fromCascade";
-    public static final String FROM_DENY_PROPERTY = "fromDeny";
-    public static final String FROM_NULLIFY_PROPERTY = "fromNullify";
-
-    protected String name;
-    protected List<ClientMtDeleteCascade> fromCascade;
-    protected List<ClientMtDeleteDeny> fromDeny;
-    protected List<ClientMtDeleteNullify> fromNullify;
-
-    public String getName() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "name", false);
-        }
-
-        return name;
-    }
-    public void setName(String name) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "name", false);
-        }
-
-        Object oldValue = this.name;
-        this.name = name;
-
-        // notify objectContext about simple property change
-        if(objectContext != null) {
-            objectContext.propertyChanged(this, "name", oldValue, name);
-        }
-    }
-
-    public List<ClientMtDeleteCascade> getFromCascade() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "fromCascade", true);
-        }
-
-        return fromCascade;
-    }
-    public void addToFromCascade(ClientMtDeleteCascade object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "fromCascade", true);
-        }
-
-        this.fromCascade.add(object);
-    }
-    public void removeFromFromCascade(ClientMtDeleteCascade object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "fromCascade", true);
-        }
-
-        this.fromCascade.remove(object);
-    }
-
-    public List<ClientMtDeleteDeny> getFromDeny() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "fromDeny", true);
-        }
-
-        return fromDeny;
-    }
-    public void addToFromDeny(ClientMtDeleteDeny object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "fromDeny", true);
-        }
-
-        this.fromDeny.add(object);
-    }
-    public void removeFromFromDeny(ClientMtDeleteDeny object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "fromDeny", true);
-        }
-
-        this.fromDeny.remove(object);
-    }
-
-    public List<ClientMtDeleteNullify> getFromNullify() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "fromNullify", true);
-        }
-
-        return fromNullify;
-    }
-    public void addToFromNullify(ClientMtDeleteNullify object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "fromNullify", true);
-        }
-
-        this.fromNullify.add(object);
-    }
-    public void removeFromFromNullify(ClientMtDeleteNullify object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "fromNullify", true);
-        }
-
-        this.fromNullify.remove(object);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtLifecycles.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtLifecycles.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtLifecycles.java
deleted file mode 100644
index 94ea3d7..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtLifecycles.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.PersistentObject;
-
-/**
- * A generated persistent class mapped as "MtLifecycles" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtLifecycles extends PersistentObject {
-
-    public static final String NAME_PROPERTY = "name";
-
-    protected String name;
-
-    public String getName() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "name", false);
-        }
-
-        return name;
-    }
-    public void setName(String name) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "name", false);
-        }
-
-        Object oldValue = this.name;
-        this.name = name;
-
-        // notify objectContext about simple property change
-        if(objectContext != null) {
-            objectContext.propertyChanged(this, "name", oldValue, name);
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMapToMany.java
deleted file mode 100644
index 007d502..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMapToMany.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import java.util.Map;
-
-import org.apache.cayenne.PersistentObject;
-import org.apache.cayenne.testdo.mt.ClientMtMapToManyTarget;
-
-/**
- * A generated persistent class mapped as "MtMapToMany" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtMapToMany extends PersistentObject {
-
-    public static final String TARGETS_PROPERTY = "targets";
-
-    protected Map<Object, ClientMtMapToManyTarget> targets;
-
-    public Map<Object, ClientMtMapToManyTarget> getTargets() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "targets", true);
-        }
-
-        return targets;
-    }
-	public void addToTargets(ClientMtMapToManyTarget object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "targets", true);
-        }
-
-        this.targets.put(getMapKey("targets", object), object);
-    }
-    public void removeFromTargets(ClientMtMapToManyTarget object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "targets", true);
-        }
-
-        this.targets.remove(getMapKey("targets", object));
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMapToManyTarget.java
deleted file mode 100644
index db48fdc..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMapToManyTarget.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.PersistentObject;
-import org.apache.cayenne.ValueHolder;
-import org.apache.cayenne.testdo.mt.ClientMtMapToMany;
-
-/**
- * A generated persistent class mapped as "MtMapToManyTarget" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtMapToManyTarget extends PersistentObject {
-
-    public static final String MAP_TO_MANY_PROPERTY = "mapToMany";
-
-    protected ValueHolder mapToMany;
-
-    public ClientMtMapToMany getMapToMany() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "mapToMany", true);
-        }
-
-        return (ClientMtMapToMany) mapToMany.getValue();
-    }
-    public void setMapToMany(ClientMtMapToMany mapToMany) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "mapToMany", true);
-        }
-
-        this.mapToMany.setValue(mapToMany);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMeaningfulPk.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMeaningfulPk.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMeaningfulPk.java
deleted file mode 100644
index a950f8c..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMeaningfulPk.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.PersistentObject;
-
-/**
- * A generated persistent class mapped as "MtMeaningfulPk" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtMeaningfulPk extends PersistentObject {
-
-    public static final String PK_PROPERTY = "pk";
-
-    protected String pk;
-
-    public String getPk() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "pk", false);
-        }
-
-        return pk;
-    }
-    public void setPk(String pk) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "pk", false);
-        }
-
-        Object oldValue = this.pk;
-        this.pk = pk;
-
-        // notify objectContext about simple property change
-        if(objectContext != null) {
-            objectContext.propertyChanged(this, "pk", oldValue, pk);
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtReflexive.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtReflexive.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtReflexive.java
deleted file mode 100644
index 1a764f8..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtReflexive.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import java.util.List;
-
-import org.apache.cayenne.PersistentObject;
-import org.apache.cayenne.ValueHolder;
-import org.apache.cayenne.testdo.mt.ClientMtReflexive;
-
-/**
- * A generated persistent class mapped as "MtReflexive" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtReflexive extends PersistentObject {
-
-    public static final String NAME_PROPERTY = "name";
-    public static final String CHILDREN_PROPERTY = "children";
-    public static final String TO_PARENT_PROPERTY = "toParent";
-
-    protected String name;
-    protected List<ClientMtReflexive> children;
-    protected ValueHolder toParent;
-
-    public String getName() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "name", false);
-        }
-
-        return name;
-    }
-    public void setName(String name) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "name", false);
-        }
-
-        Object oldValue = this.name;
-        this.name = name;
-
-        // notify objectContext about simple property change
-        if(objectContext != null) {
-            objectContext.propertyChanged(this, "name", oldValue, name);
-        }
-    }
-
-    public List<ClientMtReflexive> getChildren() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "children", true);
-        }
-
-        return children;
-    }
-    public void addToChildren(ClientMtReflexive object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "children", true);
-        }
-
-        this.children.add(object);
-    }
-    public void removeFromChildren(ClientMtReflexive object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "children", true);
-        }
-
-        this.children.remove(object);
-    }
-
-    public ClientMtReflexive getToParent() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "toParent", true);
-        }
-
-        return (ClientMtReflexive) toParent.getValue();
-    }
-    public void setToParent(ClientMtReflexive toParent) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "toParent", true);
-        }
-
-        this.toParent.setValue(toParent);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTablePrimitives.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTablePrimitives.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTablePrimitives.java
deleted file mode 100644
index d7189d8..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTablePrimitives.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.PersistentObject;
-
-/**
- * A generated persistent class mapped as "MtTablePrimitives" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtTablePrimitives extends PersistentObject {
-
-    public static final String BOOLEAN_COLUMN_PROPERTY = "booleanColumn";
-    public static final String INT_COLUMN_PROPERTY = "intColumn";
-
-    protected boolean booleanColumn;
-    protected int intColumn;
-
-    public boolean isBooleanColumn() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "booleanColumn", false);
-        }
-
-        return booleanColumn;
-    }
-    public void setBooleanColumn(boolean booleanColumn) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "booleanColumn", false);
-        }
-
-        Object oldValue = this.booleanColumn;
-        this.booleanColumn = booleanColumn;
-
-        // notify objectContext about simple property change
-        if(objectContext != null) {
-            objectContext.propertyChanged(this, "booleanColumn", oldValue, booleanColumn);
-        }
-    }
-
-    public int getIntColumn() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "intColumn", false);
-        }
-
-        return intColumn;
-    }
-    public void setIntColumn(int intColumn) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "intColumn", false);
-        }
-
-        Object oldValue = this.intColumn;
-        this.intColumn = intColumn;
-
-        // notify objectContext about simple property change
-        if(objectContext != null) {
-            objectContext.propertyChanged(this, "intColumn", oldValue, intColumn);
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTooneDep.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTooneDep.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTooneDep.java
deleted file mode 100644
index cdc5f74..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTooneDep.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.PersistentObject;
-import org.apache.cayenne.ValueHolder;
-import org.apache.cayenne.testdo.mt.ClientMtTooneMaster;
-
-/**
- * A generated persistent class mapped as "MtTooneDep" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtTooneDep extends PersistentObject {
-
-    public static final String TO_MASTER_PROPERTY = "toMaster";
-
-    protected ValueHolder toMaster;
-
-    public ClientMtTooneMaster getToMaster() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "toMaster", true);
-        }
-
-        return (ClientMtTooneMaster) toMaster.getValue();
-    }
-    public void setToMaster(ClientMtTooneMaster toMaster) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "toMaster", true);
-        }
-
-        this.toMaster.setValue(toMaster);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTooneMaster.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTooneMaster.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTooneMaster.java
deleted file mode 100644
index 71e466a..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTooneMaster.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.PersistentObject;
-import org.apache.cayenne.ValueHolder;
-import org.apache.cayenne.testdo.mt.ClientMtTooneDep;
-
-/**
- * A generated persistent class mapped as "MtTooneMaster" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtTooneMaster extends PersistentObject {
-
-    public static final String TO_DEPENDENT_PROPERTY = "toDependent";
-
-    protected ValueHolder toDependent;
-
-    public ClientMtTooneDep getToDependent() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "toDependent", true);
-        }
-
-        return (ClientMtTooneDep) toDependent.getValue();
-    }
-    public void setToDependent(ClientMtTooneDep toDependent) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "toDependent", true);
-        }
-
-        this.toDependent.setValue(toDependent);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteCascade.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteCascade.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteCascade.java
deleted file mode 100644
index c6a7fc7..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteCascade.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.mt.MtDeleteRule;
-
-/**
- * Class _MtDeleteCascade was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtDeleteCascade extends CayenneDataObject {
-
-    public static final String NAME_PROPERTY = "name";
-    public static final String CASCADE_PROPERTY = "cascade";
-
-    public static final String DELETE_CASCADE_ID_PK_COLUMN = "DELETE_CASCADE_ID";
-
-    public void setName(String name) {
-        writeProperty(NAME_PROPERTY, name);
-    }
-    public String getName() {
-        return (String)readProperty(NAME_PROPERTY);
-    }
-
-    public void setCascade(MtDeleteRule cascade) {
-        setToOneTarget(CASCADE_PROPERTY, cascade, true);
-    }
-
-    public MtDeleteRule getCascade() {
-        return (MtDeleteRule)readProperty(CASCADE_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteDeny.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteDeny.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteDeny.java
deleted file mode 100644
index 5f75e99..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteDeny.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.mt.MtDeleteRule;
-
-/**
- * Class _MtDeleteDeny was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtDeleteDeny extends CayenneDataObject {
-
-    public static final String NAME_PROPERTY = "name";
-    public static final String DENY_PROPERTY = "deny";
-
-    public static final String DELETE_DENY_ID_PK_COLUMN = "DELETE_DENY_ID";
-
-    public void setName(String name) {
-        writeProperty(NAME_PROPERTY, name);
-    }
-    public String getName() {
-        return (String)readProperty(NAME_PROPERTY);
-    }
-
-    public void setDeny(MtDeleteRule deny) {
-        setToOneTarget(DENY_PROPERTY, deny, true);
-    }
-
-    public MtDeleteRule getDeny() {
-        return (MtDeleteRule)readProperty(DENY_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteNullify.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteNullify.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteNullify.java
deleted file mode 100644
index 00f089f..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteNullify.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.mt.MtDeleteRule;
-
-/**
- * Class _MtDeleteNullify was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtDeleteNullify extends CayenneDataObject {
-
-    public static final String NAME_PROPERTY = "name";
-    public static final String NULLIFY_PROPERTY = "nullify";
-
-    public static final String DELETE_NULLIFY_ID_PK_COLUMN = "DELETE_NULLIFY_ID";
-
-    public void setName(String name) {
-        writeProperty(NAME_PROPERTY, name);
-    }
-    public String getName() {
-        return (String)readProperty(NAME_PROPERTY);
-    }
-
-    public void setNullify(MtDeleteRule nullify) {
-        setToOneTarget(NULLIFY_PROPERTY, nullify, true);
-    }
-
-    public MtDeleteRule getNullify() {
-        return (MtDeleteRule)readProperty(NULLIFY_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteRule.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteRule.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteRule.java
deleted file mode 100644
index 0d7f9e1..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteRule.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import java.util.List;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.mt.MtDeleteCascade;
-import org.apache.cayenne.testdo.mt.MtDeleteDeny;
-import org.apache.cayenne.testdo.mt.MtDeleteNullify;
-
-/**
- * Class _MtDeleteRule was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtDeleteRule extends CayenneDataObject {
-
-    public static final String NAME_PROPERTY = "name";
-    public static final String FROM_CASCADE_PROPERTY = "fromCascade";
-    public static final String FROM_DENY_PROPERTY = "fromDeny";
-    public static final String FROM_NULLIFY_PROPERTY = "fromNullify";
-
-    public static final String DELETE_RULE_ID_PK_COLUMN = "DELETE_RULE_ID";
-
-    public void setName(String name) {
-        writeProperty(NAME_PROPERTY, name);
-    }
-    public String getName() {
-        return (String)readProperty(NAME_PROPERTY);
-    }
-
-    public void addToFromCascade(MtDeleteCascade obj) {
-        addToManyTarget(FROM_CASCADE_PROPERTY, obj, true);
-    }
-    public void removeFromFromCascade(MtDeleteCascade obj) {
-        removeToManyTarget(FROM_CASCADE_PROPERTY, obj, true);
-    }
-    @SuppressWarnings("unchecked")
-    public List<MtDeleteCascade> getFromCascade() {
-        return (List<MtDeleteCascade>)readProperty(FROM_CASCADE_PROPERTY);
-    }
-
-
-    public void addToFromDeny(MtDeleteDeny obj) {
-        addToManyTarget(FROM_DENY_PROPERTY, obj, true);
-    }
-    public void removeFromFromDeny(MtDeleteDeny obj) {
-        removeToManyTarget(FROM_DENY_PROPERTY, obj, true);
-    }
-    @SuppressWarnings("unchecked")
-    public List<MtDeleteDeny> getFromDeny() {
-        return (List<MtDeleteDeny>)readProperty(FROM_DENY_PROPERTY);
-    }
-
-
-    public void addToFromNullify(MtDeleteNullify obj) {
-        addToManyTarget(FROM_NULLIFY_PROPERTY, obj, true);
-    }
-    public void removeFromFromNullify(MtDeleteNullify obj) {
-        removeToManyTarget(FROM_NULLIFY_PROPERTY, obj, true);
-    }
-    @SuppressWarnings("unchecked")
-    public List<MtDeleteNullify> getFromNullify() {
-        return (List<MtDeleteNullify>)readProperty(FROM_NULLIFY_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtLifecycles.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtLifecycles.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtLifecycles.java
deleted file mode 100644
index 3f98a35..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtLifecycles.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-
-/**
- * Class _MtLifecycles was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtLifecycles extends CayenneDataObject {
-
-    public static final String NAME_PROPERTY = "name";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void setName(String name) {
-        writeProperty(NAME_PROPERTY, name);
-    }
-    public String getName() {
-        return (String)readProperty(NAME_PROPERTY);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMapToMany.java
deleted file mode 100644
index aa60306..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMapToMany.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import java.util.Map;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.mt.MtMapToManyTarget;
-
-/**
- * Class _MtMapToMany was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtMapToMany extends CayenneDataObject {
-
-    public static final String TARGETS_PROPERTY = "targets";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void addToTargets(MtMapToManyTarget obj) {
-        addToManyTarget(TARGETS_PROPERTY, obj, true);
-    }
-    public void removeFromTargets(MtMapToManyTarget obj) {
-        removeToManyTarget(TARGETS_PROPERTY, obj, true);
-    }
-    @SuppressWarnings("unchecked")
-    public Map<Object, MtMapToManyTarget> getTargets() {
-        return (Map<Object, MtMapToManyTarget>)readProperty(TARGETS_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMapToManyTarget.java
deleted file mode 100644
index eece442..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMapToManyTarget.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.mt.MtMapToMany;
-
-/**
- * Class _MtMapToManyTarget was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtMapToManyTarget extends CayenneDataObject {
-
-    public static final String MAP_TO_MANY_PROPERTY = "mapToMany";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void setMapToMany(MtMapToMany mapToMany) {
-        setToOneTarget(MAP_TO_MANY_PROPERTY, mapToMany, true);
-    }
-
-    public MtMapToMany getMapToMany() {
-        return (MtMapToMany)readProperty(MAP_TO_MANY_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMeaningfulPk.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMeaningfulPk.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMeaningfulPk.java
deleted file mode 100644
index 84e0757..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMeaningfulPk.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-
-/**
- * Class _MtMeaningfulPk was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtMeaningfulPk extends CayenneDataObject {
-
-    public static final String PK_PROPERTY = "pk";
-
-    public static final String PK_PK_COLUMN = "PK";
-
-    public void setPk(String pk) {
-        writeProperty(PK_PROPERTY, pk);
-    }
-    public String getPk() {
-        return (String)readProperty(PK_PROPERTY);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtReflexive.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtReflexive.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtReflexive.java
deleted file mode 100644
index 7add12e..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtReflexive.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import java.util.List;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.mt.MtReflexive;
-
-/**
- * Class _MtReflexive was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtReflexive extends CayenneDataObject {
-
-    public static final String NAME_PROPERTY = "name";
-    public static final String CHILDREN_PROPERTY = "children";
-    public static final String TO_PARENT_PROPERTY = "toParent";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void setName(String name) {
-        writeProperty(NAME_PROPERTY, name);
-    }
-    public String getName() {
-        return (String)readProperty(NAME_PROPERTY);
-    }
-
-    public void addToChildren(MtReflexive obj) {
-        addToManyTarget(CHILDREN_PROPERTY, obj, true);
-    }
-    public void removeFromChildren(MtReflexive obj) {
-        removeToManyTarget(CHILDREN_PROPERTY, obj, true);
-    }
-    @SuppressWarnings("unchecked")
-    public List<MtReflexive> getChildren() {
-        return (List<MtReflexive>)readProperty(CHILDREN_PROPERTY);
-    }
-
-
-    public void setToParent(MtReflexive toParent) {
-        setToOneTarget(TO_PARENT_PROPERTY, toParent, true);
-    }
-
-    public MtReflexive getToParent() {
-        return (MtReflexive)readProperty(TO_PARENT_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTablePrimitives.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTablePrimitives.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTablePrimitives.java
deleted file mode 100644
index a87b8e2..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTablePrimitives.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-
-/**
- * Class _MtTablePrimitives was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtTablePrimitives extends CayenneDataObject {
-
-    public static final String BOOLEAN_COLUMN_PROPERTY = "booleanColumn";
-    public static final String INT_COLUMN_PROPERTY = "intColumn";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void setBooleanColumn(boolean booleanColumn) {
-        writeProperty(BOOLEAN_COLUMN_PROPERTY, booleanColumn);
-    }
-	public boolean isBooleanColumn() {
-        Boolean value = (Boolean)readProperty(BOOLEAN_COLUMN_PROPERTY);
-        return (value != null) ? value.booleanValue() : false;
-    }
-
-    public void setIntColumn(int intColumn) {
-        writeProperty(INT_COLUMN_PROPERTY, intColumn);
-    }
-    public int getIntColumn() {
-        Object value = readProperty(INT_COLUMN_PROPERTY);
-        return (value != null) ? (Integer) value : 0;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTooneDep.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTooneDep.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTooneDep.java
deleted file mode 100644
index fafc7c3..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTooneDep.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.mt.MtTooneMaster;
-
-/**
- * Class _MtTooneDep was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtTooneDep extends CayenneDataObject {
-
-    public static final String TO_MASTER_PROPERTY = "toMaster";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void setToMaster(MtTooneMaster toMaster) {
-        setToOneTarget(TO_MASTER_PROPERTY, toMaster, true);
-    }
-
-    public MtTooneMaster getToMaster() {
-        return (MtTooneMaster)readProperty(TO_MASTER_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTooneMaster.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTooneMaster.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTooneMaster.java
deleted file mode 100644
index 4c69773..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTooneMaster.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.mt.MtTooneDep;
-
-/**
- * Class _MtTooneMaster was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtTooneMaster extends CayenneDataObject {
-
-    public static final String TO_DEPENDENT_PROPERTY = "toDependent";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void setToDependent(MtTooneDep toDependent) {
-        setToOneTarget(TO_DEPENDENT_PROPERTY, toDependent, true);
-    }
-
-    public MtTooneDep getToDependent() {
-        return (MtTooneDep)readProperty(TO_DEPENDENT_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/ClientReflexive.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/ClientReflexive.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/ClientReflexive.java
new file mode 100644
index 0000000..9e92cbc
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/ClientReflexive.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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 compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  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.
+ ****************************************************************/
+package org.apache.cayenne.testdo.reflexive;
+
+import org.apache.cayenne.testdo.reflexive.auto._ClientReflexive;
+
+/**
+ * A persistent class mapped as "Reflexive" Cayenne entity.
+ */
+public class ClientReflexive extends _ClientReflexive {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/Reflexive.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/Reflexive.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/Reflexive.java
new file mode 100644
index 0000000..75b805f
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/Reflexive.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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 compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  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.
+ ****************************************************************/
+package org.apache.cayenne.testdo.reflexive;
+
+import org.apache.cayenne.testdo.reflexive.auto._Reflexive;
+
+public class Reflexive extends _Reflexive {
+
+}
+
+
+

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/auto/_ClientReflexive.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/auto/_ClientReflexive.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/auto/_ClientReflexive.java
new file mode 100644
index 0000000..b2601aa
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/auto/_ClientReflexive.java
@@ -0,0 +1,82 @@
+package org.apache.cayenne.testdo.reflexive.auto;
+
+import org.apache.cayenne.PersistentObject;
+import org.apache.cayenne.ValueHolder;
+import org.apache.cayenne.testdo.reflexive.ClientReflexive;
+
+import java.util.List;
+
+/**
+ * A generated persistent class mapped as "Reflexive" Cayenne entity. It is a good idea to
+ * avoid changing this class manually, since it will be overwritten next time code is
+ * regenerated. If you need to make any customizations, put them in a subclass.
+ */
+public abstract class _ClientReflexive extends PersistentObject {
+
+    public static final String NAME_PROPERTY = "name";
+    public static final String CHILDREN_PROPERTY = "children";
+    public static final String TO_PARENT_PROPERTY = "toParent";
+
+    protected String name;
+    protected List<ClientReflexive> children;
+    protected ValueHolder toParent;
+
+    public String getName() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "name", false);
+        }
+
+        return name;
+    }
+    public void setName(String name) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "name", false);
+        }
+
+        Object oldValue = this.name;
+        this.name = name;
+
+        // notify objectContext about simple property change
+        if(objectContext != null) {
+            objectContext.propertyChanged(this, "name", oldValue, name);
+        }
+    }
+
+    public List<ClientReflexive> getChildren() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "children", true);
+        }
+
+        return children;
+    }
+    public void addToChildren(ClientReflexive object) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "children", true);
+        }
+
+        this.children.add(object);
+    }
+    public void removeFromChildren(ClientReflexive object) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "children", true);
+        }
+
+        this.children.remove(object);
+    }
+
+    public ClientReflexive getToParent() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "toParent", true);
+        }
+
+        return (ClientReflexive) toParent.getValue();
+    }
+    public void setToParent(ClientReflexive toParent) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "toParent", true);
+        }
+
+        this.toParent.setValue(toParent);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/auto/_Reflexive.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/auto/_Reflexive.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/auto/_Reflexive.java
new file mode 100644
index 0000000..e8d57b3
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/auto/_Reflexive.java
@@ -0,0 +1,50 @@
+package org.apache.cayenne.testdo.reflexive.auto;
+
+import org.apache.cayenne.CayenneDataObject;
+import org.apache.cayenne.testdo.reflexive.Reflexive;
+
+import java.util.List;
+
+/**
+ * Class _Reflexive was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _Reflexive extends CayenneDataObject {
+
+    public static final String NAME_PROPERTY = "name";
+    public static final String CHILDREN_PROPERTY = "children";
+    public static final String TO_PARENT_PROPERTY = "toParent";
+
+    public static final String ID_PK_COLUMN = "ID";
+
+    public void setName(String name) {
+        writeProperty(NAME_PROPERTY, name);
+    }
+    public String getName() {
+        return (String)readProperty(NAME_PROPERTY);
+    }
+
+    public void addToChildren(Reflexive obj) {
+        addToManyTarget(CHILDREN_PROPERTY, obj, true);
+    }
+    public void removeFromChildren(Reflexive obj) {
+        removeToManyTarget(CHILDREN_PROPERTY, obj, true);
+    }
+    @SuppressWarnings("unchecked")
+    public List<Reflexive> getChildren() {
+        return (List<Reflexive>)readProperty(CHILDREN_PROPERTY);
+    }
+
+
+    public void setToParent(Reflexive toParent) {
+        setToOneTarget(TO_PARENT_PROPERTY, toParent, true);
+    }
+
+    public Reflexive getToParent() {
+        return (Reflexive)readProperty(TO_PARENT_PROPERTY);
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/IdMapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/IdMapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/IdMapToMany.java
deleted file mode 100644
index 6c90077..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/IdMapToMany.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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 compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  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.
- ****************************************************************/
-package org.apache.cayenne.testdo.relationship;
-
-import org.apache.cayenne.testdo.relationship.auto._IdMapToMany;
-
-public class IdMapToMany extends _IdMapToMany {
-
-}
-
-
-

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/IdMapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/IdMapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/IdMapToManyTarget.java
deleted file mode 100644
index 6cf4f7b..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/IdMapToManyTarget.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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 compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  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.
- ****************************************************************/
-package org.apache.cayenne.testdo.relationship;
-
-import org.apache.cayenne.testdo.relationship.auto._IdMapToManyTarget;
-
-public class IdMapToManyTarget extends _IdMapToManyTarget {
-
-}
-
-
-

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/MapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/MapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/MapToMany.java
deleted file mode 100644
index 223120a..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/MapToMany.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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 compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  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.
- ****************************************************************/
-package org.apache.cayenne.testdo.relationship;
-
-import org.apache.cayenne.testdo.relationship.auto._MapToMany;
-
-public class MapToMany extends _MapToMany {
-
-}
-
-
-

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/MapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/MapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/MapToManyTarget.java
deleted file mode 100644
index e093387..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/MapToManyTarget.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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 compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  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.
- ****************************************************************/
-package org.apache.cayenne.testdo.relationship;
-
-import org.apache.cayenne.testdo.relationship.auto._MapToManyTarget;
-
-public class MapToManyTarget extends _MapToManyTarget {
-
-}
-
-
-

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_IdMapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_IdMapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_IdMapToMany.java
deleted file mode 100644
index 7ee7989..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_IdMapToMany.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.apache.cayenne.testdo.relationship.auto;
-
-import java.util.Map;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.relationship.IdMapToManyTarget;
-
-/**
- * Class _IdMapToMany was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _IdMapToMany extends CayenneDataObject {
-
-    public static final String TARGETS_PROPERTY = "targets";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void addToTargets(IdMapToManyTarget obj) {
-        addToManyTarget(TARGETS_PROPERTY, obj, true);
-    }
-    public void removeFromTargets(IdMapToManyTarget obj) {
-        removeToManyTarget(TARGETS_PROPERTY, obj, true);
-    }
-    @SuppressWarnings("unchecked")
-    public Map<Object, IdMapToManyTarget> getTargets() {
-        return (Map<Object, IdMapToManyTarget>)readProperty(TARGETS_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_IdMapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_IdMapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_IdMapToManyTarget.java
deleted file mode 100644
index 0067a9b..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_IdMapToManyTarget.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.apache.cayenne.testdo.relationship.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.relationship.IdMapToMany;
-
-/**
- * Class _IdMapToManyTarget was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _IdMapToManyTarget extends CayenneDataObject {
-
-    public static final String MAP_TO_MANY_PROPERTY = "mapToMany";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void setMapToMany(IdMapToMany mapToMany) {
-        setToOneTarget(MAP_TO_MANY_PROPERTY, mapToMany, true);
-    }
-
-    public IdMapToMany getMapToMany() {
-        return (IdMapToMany)readProperty(MAP_TO_MANY_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_MapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_MapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_MapToMany.java
deleted file mode 100644
index 957d29c..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_MapToMany.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.apache.cayenne.testdo.relationship.auto;
-
-import java.util.Map;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.relationship.MapToManyTarget;
-
-/**
- * Class _MapToMany was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MapToMany extends CayenneDataObject {
-
-    public static final String TARGETS_PROPERTY = "targets";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void addToTargets(MapToManyTarget obj) {
-        addToManyTarget(TARGETS_PROPERTY, obj, true);
-    }
-    public void removeFromTargets(MapToManyTarget obj) {
-        removeToManyTarget(TARGETS_PROPERTY, obj, true);
-    }
-    @SuppressWarnings("unchecked")
-    public Map<String, MapToManyTarget> getTargets() {
-        return (Map<String, MapToManyTarget>)readProperty(TARGETS_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_MapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_MapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_MapToManyTarget.java
deleted file mode 100644
index c4d847a..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_MapToManyTarget.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.apache.cayenne.testdo.relationship.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.relationship.MapToMany;
-
-/**
- * Class _MapToManyTarget was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MapToManyTarget extends CayenneDataObject {
-
-    public static final String NAME_PROPERTY = "name";
-    public static final String MAP_TO_MANY_PROPERTY = "mapToMany";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void setName(String name) {
-        writeProperty(NAME_PROPERTY, name);
-    }
-    public String getName() {
-        return (String)readProperty(NAME_PROPERTY);
-    }
-
-    public void setMapToMany(MapToMany mapToMany) {
-        setToOneTarget(MAP_TO_MANY_PROPERTY, mapToMany, true);
-    }
-
-    public MapToMany getMapToMany() {
-        return (MapToMany)readProperty(MAP_TO_MANY_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/ClientTablePrimitives.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/ClientTablePrimitives.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/ClientTablePrimitives.java
new file mode 100644
index 0000000..79b0fd5
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/ClientTablePrimitives.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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 compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  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.
+ ****************************************************************/
+package org.apache.cayenne.testdo.table_primitives;
+
+import org.apache.cayenne.testdo.table_primitives.auto._ClientTablePrimitives;
+
+/**
+ * A persistent class mapped as "TablePrimitives" Cayenne entity.
+ */
+public class ClientTablePrimitives extends _ClientTablePrimitives {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/TablePrimitives.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/TablePrimitives.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/TablePrimitives.java
new file mode 100644
index 0000000..f53d79a
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/TablePrimitives.java
@@ -0,0 +1,25 @@
+/*****************************************************************
+ *   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 compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  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.
+ ****************************************************************/
+package org.apache.cayenne.testdo.table_primitives;
+
+import org.apache.cayenne.testdo.table_primitives.auto._TablePrimitives;
+
+public class TablePrimitives extends _TablePrimitives {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_ClientTablePrimitives.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_ClientTablePrimitives.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_ClientTablePrimitives.java
new file mode 100644
index 0000000..73c0a4b
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_ClientTablePrimitives.java
@@ -0,0 +1,60 @@
+package org.apache.cayenne.testdo.table_primitives.auto;
+
+import org.apache.cayenne.PersistentObject;
+
+/**
+ * A generated persistent class mapped as "TablePrimitives" Cayenne entity. It is a good idea to
+ * avoid changing this class manually, since it will be overwritten next time code is
+ * regenerated. If you need to make any customizations, put them in a subclass.
+ */
+public abstract class _ClientTablePrimitives extends PersistentObject {
+
+    public static final String BOOLEAN_COLUMN_PROPERTY = "booleanColumn";
+    public static final String INT_COLUMN_PROPERTY = "intColumn";
+
+    protected boolean booleanColumn;
+    protected int intColumn;
+
+    public boolean isBooleanColumn() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "booleanColumn", false);
+        }
+
+        return booleanColumn;
+    }
+    public void setBooleanColumn(boolean booleanColumn) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "booleanColumn", false);
+        }
+
+        Object oldValue = this.booleanColumn;
+        this.booleanColumn = booleanColumn;
+
+        // notify objectContext about simple property change
+        if(objectContext != null) {
+            objectContext.propertyChanged(this, "booleanColumn", oldValue, booleanColumn);
+        }
+    }
+
+    public int getIntColumn() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "intColumn", false);
+        }
+
+        return intColumn;
+    }
+    public void setIntColumn(int intColumn) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "intColumn", false);
+        }
+
+        Object oldValue = this.intColumn;
+        this.intColumn = intColumn;
+
+        // notify objectContext about simple property change
+        if(objectContext != null) {
+            objectContext.propertyChanged(this, "intColumn", oldValue, intColumn);
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_TablePrimitives.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_TablePrimitives.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_TablePrimitives.java
new file mode 100644
index 0000000..bed40fc
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_TablePrimitives.java
@@ -0,0 +1,34 @@
+package org.apache.cayenne.testdo.table_primitives.auto;
+
+import org.apache.cayenne.CayenneDataObject;
+
+/**
+ * Class _TablePrimitives was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _TablePrimitives extends CayenneDataObject {
+
+    public static final String BOOLEAN_COLUMN_PROPERTY = "booleanColumn";
+    public static final String INT_COLUMN_PROPERTY = "intColumn";
+
+    public static final String ID_PK_COLUMN = "ID";
+
+    public void setBooleanColumn(boolean booleanColumn) {
+        writeProperty(BOOLEAN_COLUMN_PROPERTY, booleanColumn);
+    }
+	public boolean isBooleanColumn() {
+        Boolean value = (Boolean)readProperty(BOOLEAN_COLUMN_PROPERTY);
+        return (value != null) ? value.booleanValue() : false;
+    }
+
+    public void setIntColumn(int intColumn) {
+        writeProperty(INT_COLUMN_PROPERTY, intColumn);
+    }
+    public int getIntColumn() {
+        Object value = readProperty(INT_COLUMN_PROPERTY);
+        return (value != null) ? (Integer) value : 0;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/ClientTooneDep.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/ClientTooneDep.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/ClientTooneDep.java
new file mode 100644
index 0000000..0dbd9ff
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/ClientTooneDep.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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 compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  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.
+ ****************************************************************/
+package org.apache.cayenne.testdo.toone;
+
+import org.apache.cayenne.testdo.toone.auto._ClientTooneDep;
+
+/**
+ * A persistent class mapped as "TooneDep" Cayenne entity.
+ */
+public class ClientTooneDep extends _ClientTooneDep {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/ClientTooneMaster.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/ClientTooneMaster.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/ClientTooneMaster.java
new file mode 100644
index 0000000..176f1ae
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/ClientTooneMaster.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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 compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  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.
+ ****************************************************************/
+package org.apache.cayenne.testdo.toone;
+
+import org.apache.cayenne.testdo.toone.auto._ClientTooneMaster;
+
+/**
+ * A persistent class mapped as "TooneMaster" Cayenne entity.
+ */
+public class ClientTooneMaster extends _ClientTooneMaster {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/TooneDep.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/TooneDep.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/TooneDep.java
new file mode 100644
index 0000000..bdad9ad
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/TooneDep.java
@@ -0,0 +1,25 @@
+/*****************************************************************
+ *   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 compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  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.
+ ****************************************************************/
+package org.apache.cayenne.testdo.toone;
+
+import org.apache.cayenne.testdo.toone.auto._TooneDep;
+
+public class TooneDep extends _TooneDep {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/TooneMaster.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/TooneMaster.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/TooneMaster.java
new file mode 100644
index 0000000..2c0bdb6
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/TooneMaster.java
@@ -0,0 +1,25 @@
+/*****************************************************************
+ *   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 compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  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.
+ ****************************************************************/
+package org.apache.cayenne.testdo.toone;
+
+import org.apache.cayenne.testdo.toone.auto._TooneMaster;
+
+public class TooneMaster extends _TooneMaster {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_ClientTooneDep.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_ClientTooneDep.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_ClientTooneDep.java
new file mode 100644
index 0000000..f70c43e
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_ClientTooneDep.java
@@ -0,0 +1,33 @@
+package org.apache.cayenne.testdo.toone.auto;
+
+import org.apache.cayenne.PersistentObject;
+import org.apache.cayenne.ValueHolder;
+import org.apache.cayenne.testdo.toone.ClientTooneMaster;
+
+/**
+ * A generated persistent class mapped as "TooneDep" Cayenne entity. It is a good idea to
+ * avoid changing this class manually, since it will be overwritten next time code is
+ * regenerated. If you need to make any customizations, put them in a subclass.
+ */
+public abstract class _ClientTooneDep extends PersistentObject {
+
+    public static final String TO_MASTER_PROPERTY = "toMaster";
+
+    protected ValueHolder toMaster;
+
+    public ClientTooneMaster getToMaster() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "toMaster", true);
+        }
+
+        return (ClientTooneMaster) toMaster.getValue();
+    }
+    public void setToMaster(ClientTooneMaster toMaster) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "toMaster", true);
+        }
+
+        this.toMaster.setValue(toMaster);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_ClientTooneMaster.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_ClientTooneMaster.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_ClientTooneMaster.java
new file mode 100644
index 0000000..95cf161
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_ClientTooneMaster.java
@@ -0,0 +1,33 @@
+package org.apache.cayenne.testdo.toone.auto;
+
+import org.apache.cayenne.PersistentObject;
+import org.apache.cayenne.ValueHolder;
+import org.apache.cayenne.testdo.toone.ClientTooneDep;
+
+/**
+ * A generated persistent class mapped as "TooneMaster" Cayenne entity. It is a good idea to
+ * avoid changing this class manually, since it will be overwritten next time code is
+ * regenerated. If you need to make any customizations, put them in a subclass.
+ */
+public abstract class _ClientTooneMaster extends PersistentObject {
+
+    public static final String TO_DEPENDENT_PROPERTY = "toDependent";
+
+    protected ValueHolder toDependent;
+
+    public ClientTooneDep getToDependent() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "toDependent", true);
+        }
+
+        return (ClientTooneDep) toDependent.getValue();
+    }
+    public void setToDependent(ClientTooneDep toDependent) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "toDependent", true);
+        }
+
+        this.toDependent.setValue(toDependent);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneDep.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneDep.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneDep.java
new file mode 100644
index 0000000..262d73f
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneDep.java
@@ -0,0 +1,27 @@
+package org.apache.cayenne.testdo.toone.auto;
+
+import org.apache.cayenne.CayenneDataObject;
+import org.apache.cayenne.testdo.toone.TooneMaster;
+
+/**
+ * Class _TooneDep was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _TooneDep extends CayenneDataObject {
+
+    public static final String TO_MASTER_PROPERTY = "toMaster";
+
+    public static final String ID_PK_COLUMN = "ID";
+
+    public void setToMaster(TooneMaster toMaster) {
+        setToOneTarget(TO_MASTER_PROPERTY, toMaster, true);
+    }
+
+    public TooneMaster getToMaster() {
+        return (TooneMaster)readProperty(TO_MASTER_PROPERTY);
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneMaster.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneMaster.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneMaster.java
new file mode 100644
index 0000000..788411f
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneMaster.java
@@ -0,0 +1,27 @@
+package org.apache.cayenne.testdo.toone.auto;
+
+import org.apache.cayenne.CayenneDataObject;
+import org.apache.cayenne.testdo.toone.TooneDep;
+
+/**
+ * Class _TooneMaster was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _TooneMaster extends CayenneDataObject {
+
+    public static final String TO_DEPENDENT_PROPERTY = "toDependent";
+
+    public static final String ID_PK_COLUMN = "ID";
+
+    public void setToDependent(TooneDep toDependent) {
+        setToOneTarget(TO_DEPENDENT_PROPERTY, toDependent, true);
+    }
+
+    public TooneDep getToDependent() {
+        return (TooneDep)readProperty(TO_DEPENDENT_PROPERTY);
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
index 73250d3..c598a8f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
@@ -19,19 +19,6 @@
 
 package org.apache.cayenne.unit.di.server;
 
-import java.io.InputStream;
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.sql.Types;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.ListIterator;
-
 import org.apache.cayenne.access.DataDomain;
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.DbGenerator;
@@ -55,6 +42,19 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.xml.sax.InputSource;
 
+import java.io.InputStream;
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.sql.Types;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.ListIterator;
+
 /**
  * Default implementation of the AccessStack that has a single DataNode per
  * DataMap.
@@ -70,6 +70,8 @@ public class SchemaBuilder {
 
     private static String[] MAPS_REQUIRING_SCHEMA_SETUP = { "tstmap.map.xml", "people.map.xml",
             "locking.map.xml", "relationships.map.xml", "relationships1.map.xml", "multi-tier.map.xml",
+            "persistent.map.xml", "reflexive.map.xml", "delete-rules.map.xml", "lifecycles.map.xml",
+            "map-to-many.map.xml", "toone.map.xml", "meaningful-pk.map.xml", "table-primitives.map.xml",
             "generic.map.xml", "map-db1.map.xml", "map-db2.map.xml", "embeddable.map.xml", "qualified.map.xml",
             "quoted-identifiers.map.xml", "inheritance-single-table1.map.xml", "inheritance-vertical.map.xml",
             "oneway-rels.map.xml" };

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java
index 854f7cc..0ec0980 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java
@@ -41,6 +41,7 @@ public class ServerCase extends DICase {
 	public static final String MULTINODE_PROJECT = "cayenne-multinode.xml";
 	public static final String ONEWAY_PROJECT = "cayenne-oneway-rels.xml";
 	public static final String MULTI_TIER_PROJECT = "cayenne-multi-tier.xml";
+    public static final String MAP_TO_MANY_PROJECT = "cayenne-map-to-many.xml";
 	public static final String SUS_PROJECT = "cayenne-sus.xml";
 
 	private static final Injector injector;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/resources/cayenne-delete-rules.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-delete-rules.xml b/cayenne-server/src/test/resources/cayenne-delete-rules.xml
new file mode 100644
index 0000000..f6fa557
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-delete-rules.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="delete-rules"/>
+</domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/resources/cayenne-lifecycles.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-lifecycles.xml b/cayenne-server/src/test/resources/cayenne-lifecycles.xml
new file mode 100644
index 0000000..0509c40
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-lifecycles.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="lifecycles"/>
+</domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/resources/cayenne-map-to-many.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-map-to-many.xml b/cayenne-server/src/test/resources/cayenne-map-to-many.xml
new file mode 100644
index 0000000..abbb675
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-map-to-many.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="map-to-many"/>
+</domain>
\ No newline at end of file