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 2020/10/03 07:57:51 UTC
[cayenne] branch master updated: CAY-2682 Vertical Inheritance:
DB-generated PK doesn't propagate from the root to children
This is an automated email from the ASF dual-hosted git repository.
aadamchik 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 215c3d0 CAY-2682 Vertical Inheritance: DB-generated PK doesn't propagate from the root to children
215c3d0 is described below
commit 215c3d07221abb4e63d7eddd106e295bc217054d
Author: Andrus Adamchik <an...@objectstyle.com>
AuthorDate: Sat Oct 3 10:42:28 2020 +0300
CAY-2682 Vertical Inheritance: DB-generated PK doesn't propagate from the root to children
* porting tests from 4.1.. 4.2 doesn't have this issue, but we need to confirm it
* (regenerating classes from "inheritance-vertical.map.xml", so there are some unrelated changes too)
---
RELEASE-NOTES.txt | 1 +
.../org/apache/cayenne/crypto/db/auto/_Table1.java | 2 +-
.../org/apache/cayenne/crypto/db/auto/_Table2.java | 2 +-
.../org/apache/cayenne/crypto/db/auto/_Table3.java | 2 +-
.../org/apache/cayenne/crypto/db/auto/_Table4.java | 2 +-
.../org/apache/cayenne/crypto/db/auto/_Table5.java | 2 +-
.../org/apache/cayenne/crypto/db/auto/_Table6.java | 2 +-
.../org/apache/cayenne/crypto/db/auto/_Table7.java | 2 +-
.../org/apache/cayenne/crypto/db/auto/_Table8.java | 2 +-
.../persistent/auto/_ClientMtTable1.java | 6 ++++
.../persistent/auto/_ClientMtTable2.java | 1 +
.../cayenne/access/VerticalInheritanceIT.java | 38 ++++++++++------------
.../testdo/inheritance_vertical/IvGenKeyRoot.java | 9 +++++
.../testdo/inheritance_vertical/IvGenKeySub.java | 9 +++++
.../testdo/inheritance_vertical/auto/_Iv1Root.java | 3 --
.../testdo/inheritance_vertical/auto/_Iv1Sub1.java | 3 --
.../testdo/inheritance_vertical/auto/_Iv2Root.java | 3 --
.../testdo/inheritance_vertical/auto/_Iv2Sub1.java | 3 --
.../testdo/inheritance_vertical/auto/_Iv2X.java | 4 ---
.../inheritance_vertical/auto/_IvAbstract.java | 3 --
.../testdo/inheritance_vertical/auto/_IvBase.java | 3 --
.../inheritance_vertical/auto/_IvBaseWithLock.java | 3 --
.../inheritance_vertical/auto/_IvConcrete.java | 3 --
.../auto/{_IvRoot.java => _IvGenKeyRoot.java} | 7 ++--
.../auto/{_Iv2X.java => _IvGenKeySub.java} | 10 ++----
.../testdo/inheritance_vertical/auto/_IvImpl.java | 3 --
.../inheritance_vertical/auto/_IvImplWithLock.java | 3 --
.../testdo/inheritance_vertical/auto/_IvOther.java | 19 +++++++++--
.../testdo/inheritance_vertical/auto/_IvRoot.java | 3 --
.../testdo/inheritance_vertical/auto/_IvSub1.java | 3 --
.../inheritance_vertical/auto/_IvSub1Sub1.java | 3 --
.../testdo/inheritance_vertical/auto/_IvSub2.java | 3 --
.../testdo/inheritance_vertical/auto/_IvSub3.java | 7 ++--
.../resources/cayenne-inheritance-vertical.xml | 2 +-
.../test/resources/inheritance-vertical.map.xml | 23 +++++++++++++
35 files changed, 101 insertions(+), 93 deletions(-)
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index c9ad278..84d4952 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -25,6 +25,7 @@ CAY-2668 Experimental graph-based db operations sorter
CAY-2670 CommitLog does not include FKs for deleted objects with one-way relationships
CAY-2673 Support ordering by aggregate functions
CAY-2674 Support in-memory evaluation of aggregate functions
+CAY-2682 Vertical Inheritance: DB-generated PK doesn't propagate from the root to children
Bug Fixes:
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table1.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table1.java
index 71855de..d96d3df 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table1.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table1.java
@@ -20,7 +20,7 @@ import org.apache.cayenne.exp.property.StringProperty;
*/
public abstract class _Table1 extends BaseDataObject {
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 1L;
public static final String ID_PK_COLUMN = "ID";
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table2.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table2.java
index ebb619c..c080161 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table2.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table2.java
@@ -16,7 +16,7 @@ import org.apache.cayenne.exp.property.PropertyFactory;
*/
public abstract class _Table2 extends BaseDataObject {
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 1L;
public static final String ID_PK_COLUMN = "ID";
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table3.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table3.java
index a25a778..7b00bf4 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table3.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table3.java
@@ -16,7 +16,7 @@ import org.apache.cayenne.exp.property.StringProperty;
*/
public abstract class _Table3 extends BaseDataObject {
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 1L;
public static final String ID_PK_COLUMN = "ID";
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table4.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table4.java
index b2dd4ff..00b826a 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table4.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table4.java
@@ -17,7 +17,7 @@ import org.apache.cayenne.exp.property.StringProperty;
*/
public abstract class _Table4 extends BaseDataObject {
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 1L;
public static final String ID_PK_COLUMN = "ID";
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table5.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table5.java
index e4523e6..454fa7a 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table5.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table5.java
@@ -16,7 +16,7 @@ import org.apache.cayenne.exp.property.PropertyFactory;
*/
public abstract class _Table5 extends BaseDataObject {
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 1L;
public static final String ID_PK_COLUMN = "ID";
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table6.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table6.java
index 5255744..04966ca 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table6.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table6.java
@@ -16,7 +16,7 @@ import org.apache.cayenne.exp.property.PropertyFactory;
*/
public abstract class _Table6 extends BaseDataObject {
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 1L;
public static final String ID_PK_COLUMN = "ID";
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table7.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table7.java
index 3964c74..586a199 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table7.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table7.java
@@ -19,7 +19,7 @@ import org.apache.cayenne.exp.property.StringProperty;
*/
public abstract class _Table7 extends BaseDataObject {
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 1L;
public static final String ID_PK_COLUMN = "ID";
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table8.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table8.java
index d8f6527..7dc86f2 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table8.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table8.java
@@ -16,7 +16,7 @@ import org.apache.cayenne.exp.property.StringProperty;
*/
public abstract class _Table8 extends BaseDataObject {
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 1L;
public static final String ID_PK_COLUMN = "ID";
diff --git a/cayenne-protostuff/src/test/java/org/apache/cayenne/rop/protostuff/persistent/auto/_ClientMtTable1.java b/cayenne-protostuff/src/test/java/org/apache/cayenne/rop/protostuff/persistent/auto/_ClientMtTable1.java
index 9e36772..3b0ed49 100644
--- a/cayenne-protostuff/src/test/java/org/apache/cayenne/rop/protostuff/persistent/auto/_ClientMtTable1.java
+++ b/cayenne-protostuff/src/test/java/org/apache/cayenne/rop/protostuff/persistent/auto/_ClientMtTable1.java
@@ -42,6 +42,7 @@ public abstract class _ClientMtTable1 extends PersistentObject {
objectContext.prepareForAccess(this, "dateAttribute", false);
}
+
return dateAttribute;
}
@@ -59,6 +60,7 @@ public abstract class _ClientMtTable1 extends PersistentObject {
objectContext.prepareForAccess(this, "globalAttribute", false);
}
+
return globalAttribute;
}
@@ -76,6 +78,7 @@ public abstract class _ClientMtTable1 extends PersistentObject {
objectContext.prepareForAccess(this, "oldDateAttribute", false);
}
+
return oldDateAttribute;
}
@@ -93,6 +96,7 @@ public abstract class _ClientMtTable1 extends PersistentObject {
objectContext.prepareForAccess(this, "serverAttribute", false);
}
+
return serverAttribute;
}
@@ -110,6 +114,7 @@ public abstract class _ClientMtTable1 extends PersistentObject {
objectContext.prepareForAccess(this, "timeAttribute", false);
}
+
return timeAttribute;
}
@@ -127,6 +132,7 @@ public abstract class _ClientMtTable1 extends PersistentObject {
objectContext.prepareForAccess(this, "timestampAttribute", false);
}
+
return timestampAttribute;
}
diff --git a/cayenne-protostuff/src/test/java/org/apache/cayenne/rop/protostuff/persistent/auto/_ClientMtTable2.java b/cayenne-protostuff/src/test/java/org/apache/cayenne/rop/protostuff/persistent/auto/_ClientMtTable2.java
index 6020a3e..2f0b152 100644
--- a/cayenne-protostuff/src/test/java/org/apache/cayenne/rop/protostuff/persistent/auto/_ClientMtTable2.java
+++ b/cayenne-protostuff/src/test/java/org/apache/cayenne/rop/protostuff/persistent/auto/_ClientMtTable2.java
@@ -26,6 +26,7 @@ public abstract class _ClientMtTable2 extends PersistentObject {
objectContext.prepareForAccess(this, "globalAttribute", false);
}
+
return globalAttribute;
}
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java
index 4e7645e..4a83c83 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java
@@ -18,13 +18,7 @@
****************************************************************/
package org.apache.cayenne.access;
-import java.sql.SQLException;
-import java.sql.Types;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
+import org.apache.cayenne.Cayenne;
import org.apache.cayenne.ObjectContext;
import org.apache.cayenne.configuration.server.ServerRuntime;
import org.apache.cayenne.di.Inject;
@@ -33,24 +27,19 @@ import org.apache.cayenne.query.ObjectSelect;
import org.apache.cayenne.query.SelectById;
import org.apache.cayenne.test.jdbc.DBHelper;
import org.apache.cayenne.test.jdbc.TableHelper;
-import org.apache.cayenne.testdo.inheritance_vertical.Iv1Root;
-import org.apache.cayenne.testdo.inheritance_vertical.Iv1Sub1;
-import org.apache.cayenne.testdo.inheritance_vertical.Iv2Sub1;
-import org.apache.cayenne.testdo.inheritance_vertical.Iv2X;
-import org.apache.cayenne.testdo.inheritance_vertical.IvConcrete;
-import org.apache.cayenne.testdo.inheritance_vertical.IvImpl;
-import org.apache.cayenne.testdo.inheritance_vertical.IvImplWithLock;
-import org.apache.cayenne.testdo.inheritance_vertical.IvOther;
-import org.apache.cayenne.testdo.inheritance_vertical.IvRoot;
-import org.apache.cayenne.testdo.inheritance_vertical.IvSub1;
-import org.apache.cayenne.testdo.inheritance_vertical.IvSub1Sub1;
-import org.apache.cayenne.testdo.inheritance_vertical.IvSub2;
-import org.apache.cayenne.testdo.inheritance_vertical.IvSub3;
+import org.apache.cayenne.testdo.inheritance_vertical.*;
import org.apache.cayenne.unit.di.server.CayenneProjects;
import org.apache.cayenne.unit.di.server.ServerCase;
import org.apache.cayenne.unit.di.server.UseServerRuntime;
import org.junit.Test;
+import java.sql.SQLException;
+import java.sql.Types;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
import static org.junit.Assert.*;
@UseServerRuntime(CayenneProjects.INHERITANCE_VERTICAL_PROJECT)
@@ -751,4 +740,13 @@ public class VerticalInheritanceIT extends ServerCase {
EJBQLQuery query3 = new EJBQLQuery("SELECT COUNT(a) FROM IvSub2 a");
assertEquals(Collections.singletonList(2L), context.performQuery(query3));
}
+
+ @Test
+ public void testPropagatedGeneratedPK() {
+ IvGenKeySub sub = context.newObject(IvGenKeySub.class);
+ sub.setName("test");
+ context.commitChanges();
+
+ assertTrue(Cayenne.intPKForObject(sub) > 0);
+ }
}
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/IvGenKeyRoot.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/IvGenKeyRoot.java
new file mode 100644
index 0000000..c407be3
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/IvGenKeyRoot.java
@@ -0,0 +1,9 @@
+package org.apache.cayenne.testdo.inheritance_vertical;
+
+import org.apache.cayenne.testdo.inheritance_vertical.auto._IvGenKeyRoot;
+
+public class IvGenKeyRoot extends _IvGenKeyRoot {
+
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/IvGenKeySub.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/IvGenKeySub.java
new file mode 100644
index 0000000..c58b953
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/IvGenKeySub.java
@@ -0,0 +1,9 @@
+package org.apache.cayenne.testdo.inheritance_vertical;
+
+import org.apache.cayenne.testdo.inheritance_vertical.auto._IvGenKeySub;
+
+public class IvGenKeySub extends _IvGenKeySub {
+
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv1Root.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv1Root.java
index 7bde95a..ca06353 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv1Root.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv1Root.java
@@ -5,8 +5,6 @@ import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.ExpressionFactory;
-import org.apache.cayenne.exp.property.NumericProperty;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.exp.property.StringProperty;
@@ -20,7 +18,6 @@ public abstract class _Iv1Root extends BaseDataObject {
private static final long serialVersionUID = 1L;
- public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
public static final String ID_PK_COLUMN = "ID";
public static final StringProperty<String> DISCRIMINATOR = PropertyFactory.createString("discriminator", String.class);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv1Sub1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv1Sub1.java
index d51fc7b..18f5381 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv1Sub1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv1Sub1.java
@@ -4,8 +4,6 @@ import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
-import org.apache.cayenne.exp.ExpressionFactory;
-import org.apache.cayenne.exp.property.NumericProperty;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.exp.property.StringProperty;
import org.apache.cayenne.testdo.inheritance_vertical.Iv1Root;
@@ -20,7 +18,6 @@ public abstract class _Iv1Sub1 extends Iv1Root {
private static final long serialVersionUID = 1L;
- public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
public static final String ID_PK_COLUMN = "ID";
public static final StringProperty<String> NAME = PropertyFactory.createString("name", String.class);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2Root.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2Root.java
index 56e8083..97d5e0c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2Root.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2Root.java
@@ -5,8 +5,6 @@ import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.ExpressionFactory;
-import org.apache.cayenne.exp.property.NumericProperty;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.exp.property.StringProperty;
@@ -20,7 +18,6 @@ public abstract class _Iv2Root extends BaseDataObject {
private static final long serialVersionUID = 1L;
- public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
public static final String ID_PK_COLUMN = "ID";
public static final StringProperty<String> DISCRIMINATOR = PropertyFactory.createString("discriminator", String.class);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2Sub1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2Sub1.java
index c4dab06..7ad3f83 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2Sub1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2Sub1.java
@@ -4,9 +4,7 @@ import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
-import org.apache.cayenne.exp.ExpressionFactory;
import org.apache.cayenne.exp.property.EntityProperty;
-import org.apache.cayenne.exp.property.NumericProperty;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.testdo.inheritance_vertical.Iv2Root;
import org.apache.cayenne.testdo.inheritance_vertical.Iv2X;
@@ -21,7 +19,6 @@ public abstract class _Iv2Sub1 extends Iv2Root {
private static final long serialVersionUID = 1L;
- public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
public static final String ID_PK_COLUMN = "ID";
public static final EntityProperty<Iv2X> X = PropertyFactory.createEntity("x", Iv2X.class);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2X.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2X.java
index af083d2..c43ad20 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2X.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2X.java
@@ -5,9 +5,6 @@ import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.ExpressionFactory;
-import org.apache.cayenne.exp.property.NumericProperty;
-import org.apache.cayenne.exp.property.PropertyFactory;
/**
* Class _Iv2X was generated by Cayenne.
@@ -19,7 +16,6 @@ public abstract class _Iv2X extends BaseDataObject {
private static final long serialVersionUID = 1L;
- public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
public static final String ID_PK_COLUMN = "ID";
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvAbstract.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvAbstract.java
index 8587af9..b77509e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvAbstract.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvAbstract.java
@@ -5,8 +5,6 @@ import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.ExpressionFactory;
-import org.apache.cayenne.exp.property.NumericProperty;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.exp.property.StringProperty;
@@ -20,7 +18,6 @@ public abstract class _IvAbstract extends BaseDataObject {
private static final long serialVersionUID = 1L;
- public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
public static final String ID_PK_COLUMN = "ID";
public static final StringProperty<String> TYPE = PropertyFactory.createString("type", String.class);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvBase.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvBase.java
index 8d0bd22..cd554f2 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvBase.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvBase.java
@@ -5,8 +5,6 @@ import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.ExpressionFactory;
-import org.apache.cayenne.exp.property.NumericProperty;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.exp.property.StringProperty;
@@ -20,7 +18,6 @@ public abstract class _IvBase extends BaseDataObject {
private static final long serialVersionUID = 1L;
- public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
public static final String ID_PK_COLUMN = "ID";
public static final StringProperty<String> NAME = PropertyFactory.createString("name", String.class);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvBaseWithLock.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvBaseWithLock.java
index e7c644e..601ccde 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvBaseWithLock.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvBaseWithLock.java
@@ -5,8 +5,6 @@ import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.ExpressionFactory;
-import org.apache.cayenne.exp.property.NumericProperty;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.exp.property.StringProperty;
@@ -20,7 +18,6 @@ public abstract class _IvBaseWithLock extends BaseDataObject {
private static final long serialVersionUID = 1L;
- public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
public static final String ID_PK_COLUMN = "ID";
public static final StringProperty<String> NAME = PropertyFactory.createString("name", String.class);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvConcrete.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvConcrete.java
index 9f6f4f5..6c479ed 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvConcrete.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvConcrete.java
@@ -5,10 +5,8 @@ import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.List;
-import org.apache.cayenne.exp.ExpressionFactory;
import org.apache.cayenne.exp.property.EntityProperty;
import org.apache.cayenne.exp.property.ListProperty;
-import org.apache.cayenne.exp.property.NumericProperty;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.exp.property.StringProperty;
import org.apache.cayenne.testdo.inheritance_vertical.IvAbstract;
@@ -24,7 +22,6 @@ public abstract class _IvConcrete extends IvAbstract {
private static final long serialVersionUID = 1L;
- public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
public static final String ID_PK_COLUMN = "ID";
public static final StringProperty<String> NAME = PropertyFactory.createString("name", String.class);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvRoot.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvGenKeyRoot.java
similarity index 89%
copy from cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvRoot.java
copy to cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvGenKeyRoot.java
index 1f0e3d9..c0c9a0d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvRoot.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvGenKeyRoot.java
@@ -5,22 +5,19 @@ import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.ExpressionFactory;
-import org.apache.cayenne.exp.property.NumericProperty;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.exp.property.StringProperty;
/**
- * Class _IvRoot was generated by Cayenne.
+ * Class _IvGenKeyRoot 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 _IvRoot extends BaseDataObject {
+public abstract class _IvGenKeyRoot extends BaseDataObject {
private static final long serialVersionUID = 1L;
- public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
public static final String ID_PK_COLUMN = "ID";
public static final StringProperty<String> DISCRIMINATOR = PropertyFactory.createString("discriminator", String.class);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2X.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvGenKeySub.java
similarity index 78%
copy from cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2X.java
copy to cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvGenKeySub.java
index af083d2..62d5345 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2X.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvGenKeySub.java
@@ -4,22 +4,18 @@ import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
-import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.ExpressionFactory;
-import org.apache.cayenne.exp.property.NumericProperty;
-import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.testdo.inheritance_vertical.IvGenKeyRoot;
/**
- * Class _Iv2X was generated by Cayenne.
+ * Class _IvGenKeySub 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 _Iv2X extends BaseDataObject {
+public abstract class _IvGenKeySub extends IvGenKeyRoot {
private static final long serialVersionUID = 1L;
- public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
public static final String ID_PK_COLUMN = "ID";
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvImpl.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvImpl.java
index b264f19..86ab1ab 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvImpl.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvImpl.java
@@ -4,9 +4,7 @@ import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
-import org.apache.cayenne.exp.ExpressionFactory;
import org.apache.cayenne.exp.property.EntityProperty;
-import org.apache.cayenne.exp.property.NumericProperty;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.exp.property.StringProperty;
import org.apache.cayenne.testdo.inheritance_vertical.IvBase;
@@ -22,7 +20,6 @@ public abstract class _IvImpl extends IvBase {
private static final long serialVersionUID = 1L;
- public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
public static final String ID_PK_COLUMN = "ID";
public static final StringProperty<String> ATTR1 = PropertyFactory.createString("attr1", String.class);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvImplWithLock.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvImplWithLock.java
index 6a77d54..19e3e4e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvImplWithLock.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvImplWithLock.java
@@ -4,9 +4,7 @@ import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
-import org.apache.cayenne.exp.ExpressionFactory;
import org.apache.cayenne.exp.property.EntityProperty;
-import org.apache.cayenne.exp.property.NumericProperty;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.exp.property.StringProperty;
import org.apache.cayenne.testdo.inheritance_vertical.IvBaseWithLock;
@@ -22,7 +20,6 @@ public abstract class _IvImplWithLock extends IvBaseWithLock {
private static final long serialVersionUID = 1L;
- public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
public static final String ID_PK_COLUMN = "ID";
public static final StringProperty<String> ATTR1 = PropertyFactory.createString("attr1", String.class);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvOther.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvOther.java
index 6ccc5d1..ae8c98b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvOther.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvOther.java
@@ -6,9 +6,7 @@ import java.io.ObjectOutputStream;
import java.util.List;
import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.ExpressionFactory;
import org.apache.cayenne.exp.property.ListProperty;
-import org.apache.cayenne.exp.property.NumericProperty;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.exp.property.StringProperty;
import org.apache.cayenne.testdo.inheritance_vertical.IvImpl;
@@ -24,7 +22,6 @@ public abstract class _IvOther extends BaseDataObject {
private static final long serialVersionUID = 1L;
- public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
public static final String ID_PK_COLUMN = "ID";
public static final StringProperty<String> NAME = PropertyFactory.createString("name", String.class);
@@ -46,11 +43,27 @@ public abstract class _IvOther extends BaseDataObject {
return this.name;
}
+ public void addToImpls(IvImpl obj) {
+ addToManyTarget("impls", obj, true);
+ }
+
+ public void removeFromImpls(IvImpl obj) {
+ removeToManyTarget("impls", obj, true);
+ }
+
@SuppressWarnings("unchecked")
public List<IvImpl> getImpls() {
return (List<IvImpl>)readProperty("impls");
}
+ public void addToImplsWithLock(IvImplWithLock obj) {
+ addToManyTarget("implsWithLock", obj, true);
+ }
+
+ public void removeFromImplsWithLock(IvImplWithLock obj) {
+ removeToManyTarget("implsWithLock", obj, true);
+ }
+
@SuppressWarnings("unchecked")
public List<IvImplWithLock> getImplsWithLock() {
return (List<IvImplWithLock>)readProperty("implsWithLock");
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvRoot.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvRoot.java
index 1f0e3d9..78277c6 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvRoot.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvRoot.java
@@ -5,8 +5,6 @@ import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.ExpressionFactory;
-import org.apache.cayenne.exp.property.NumericProperty;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.exp.property.StringProperty;
@@ -20,7 +18,6 @@ public abstract class _IvRoot extends BaseDataObject {
private static final long serialVersionUID = 1L;
- public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
public static final String ID_PK_COLUMN = "ID";
public static final StringProperty<String> DISCRIMINATOR = PropertyFactory.createString("discriminator", String.class);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub1.java
index 76115cb..8fef82e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub1.java
@@ -4,8 +4,6 @@ import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
-import org.apache.cayenne.exp.ExpressionFactory;
-import org.apache.cayenne.exp.property.NumericProperty;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.exp.property.StringProperty;
import org.apache.cayenne.testdo.inheritance_vertical.IvRoot;
@@ -20,7 +18,6 @@ public abstract class _IvSub1 extends IvRoot {
private static final long serialVersionUID = 1L;
- public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
public static final String ID_PK_COLUMN = "ID";
public static final StringProperty<String> SUB1NAME = PropertyFactory.createString("sub1Name", String.class);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub1Sub1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub1Sub1.java
index 4d31b89..bf6a8b6 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub1Sub1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub1Sub1.java
@@ -4,8 +4,6 @@ import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
-import org.apache.cayenne.exp.ExpressionFactory;
-import org.apache.cayenne.exp.property.NumericProperty;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.exp.property.StringProperty;
import org.apache.cayenne.testdo.inheritance_vertical.IvSub1;
@@ -20,7 +18,6 @@ public abstract class _IvSub1Sub1 extends IvSub1 {
private static final long serialVersionUID = 1L;
- public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
public static final String ID_PK_COLUMN = "ID";
public static final StringProperty<String> SUB1SUB1NAME = PropertyFactory.createString("sub1Sub1Name", String.class);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub2.java
index 584c0d7..6b133b9 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub2.java
@@ -4,8 +4,6 @@ import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
-import org.apache.cayenne.exp.ExpressionFactory;
-import org.apache.cayenne.exp.property.NumericProperty;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.exp.property.StringProperty;
import org.apache.cayenne.testdo.inheritance_vertical.IvRoot;
@@ -20,7 +18,6 @@ public abstract class _IvSub2 extends IvRoot {
private static final long serialVersionUID = 1L;
- public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
public static final String ID_PK_COLUMN = "ID";
public static final StringProperty<String> SUB2ATTR = PropertyFactory.createString("sub2Attr", String.class);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub3.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub3.java
index b6c1bba..50fdb30 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub3.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub3.java
@@ -4,9 +4,7 @@ import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
-import org.apache.cayenne.exp.ExpressionFactory;
import org.apache.cayenne.exp.property.EntityProperty;
-import org.apache.cayenne.exp.property.NumericProperty;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.testdo.inheritance_vertical.IvRoot;
@@ -20,7 +18,6 @@ public abstract class _IvSub3 extends IvRoot {
private static final long serialVersionUID = 1L;
- public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
public static final String ID_PK_COLUMN = "ID";
public static final EntityProperty<IvRoot> IV_ROOT = PropertyFactory.createEntity("ivRoot", IvRoot.class);
@@ -28,6 +25,10 @@ public abstract class _IvSub3 extends IvRoot {
protected Object ivRoot;
+ public void setIvRoot(IvRoot ivRoot) {
+ setToOneTarget("ivRoot", ivRoot, true);
+ }
+
public IvRoot getIvRoot() {
return (IvRoot)readProperty("ivRoot");
}
diff --git a/cayenne-server/src/test/resources/cayenne-inheritance-vertical.xml b/cayenne-server/src/test/resources/cayenne-inheritance-vertical.xml
index 3118079..f5a5e18 100644
--- a/cayenne-server/src/test/resources/cayenne-inheritance-vertical.xml
+++ b/cayenne-server/src/test/resources/cayenne-inheritance-vertical.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<domain xmlns="http://cayenne.apache.org/schema/10/domain"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://cayenne.apache.org/schema/10/domain http://cayenne.apache.org/schema/10/domain.xsd"
+ xsi:schemaLocation="http://cayenne.apache.org/schema/10/domain https://cayenne.apache.org/schema/10/domain.xsd"
project-version="10">
<map name="inheritance-vertical"/>
</domain>
diff --git a/cayenne-server/src/test/resources/inheritance-vertical.map.xml b/cayenne-server/src/test/resources/inheritance-vertical.map.xml
index 25b772a..1a108ae 100644
--- a/cayenne-server/src/test/resources/inheritance-vertical.map.xml
+++ b/cayenne-server/src/test/resources/inheritance-vertical.map.xml
@@ -43,6 +43,15 @@
<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
<db-attribute name="NAME" type="VARCHAR" length="100"/>
</db-entity>
+ <db-entity name="IV_GEN_KEY_ROOT">
+ <db-attribute name="DISCRIMINATOR" type="VARCHAR" length="10"/>
+ <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isGenerated="true" isMandatory="true"/>
+ <db-attribute name="NAME" type="VARCHAR" length="100"/>
+ </db-entity>
+ <db-entity name="IV_GEN_KEY_SUB">
+ <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+ <db-attribute name="SUB1_NAME" type="VARCHAR" length="100"/>
+ </db-entity>
<db-entity name="IV_IMPL">
<db-attribute name="ATTR1" type="VARCHAR" length="100"/>
<db-attribute name="ATTR2" type="VARCHAR" length="100"/>
@@ -112,6 +121,14 @@
<qualifier><![CDATA[type = "S"]]></qualifier>
<obj-attribute name="name" type="java.lang.String" db-attribute-path="concrete.NAME"/>
</obj-entity>
+ <obj-entity name="IvGenKeyRoot" className="org.apache.cayenne.testdo.inheritance_vertical.IvGenKeyRoot" dbEntityName="IV_GEN_KEY_ROOT">
+ <obj-attribute name="discriminator" type="java.lang.String" db-attribute-path="DISCRIMINATOR"/>
+ <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+ </obj-entity>
+ <obj-entity name="IvGenKeySub" superEntityName="IvGenKeyRoot" className="org.apache.cayenne.testdo.inheritance_vertical.IvGenKeySub">
+ <qualifier><![CDATA[discriminator = "sub1"]]></qualifier>
+ <attribute-override name="name" db-attribute-path="sub1.SUB1_NAME"/>
+ </obj-entity>
<obj-entity name="IvImpl" superEntityName="IvBase" className="org.apache.cayenne.testdo.inheritance_vertical.IvImpl">
<qualifier><![CDATA[type = "I"]]></qualifier>
<obj-attribute name="attr1" type="java.lang.String" db-attribute-path="impl.ATTR1"/>
@@ -185,6 +202,12 @@
<db-relationship name="abstract" source="IV_CONCRETE" target="IV_ABSTRACT">
<db-attribute-pair source="ID" target="ID"/>
</db-relationship>
+ <db-relationship name="sub1" source="IV_GEN_KEY_ROOT" target="IV_GEN_KEY_SUB" toDependentPK="true">
+ <db-attribute-pair source="ID" target="ID"/>
+ </db-relationship>
+ <db-relationship name="root" source="IV_GEN_KEY_SUB" target="IV_GEN_KEY_ROOT">
+ <db-attribute-pair source="ID" target="ID"/>
+ </db-relationship>
<db-relationship name="base" source="IV_IMPL" target="IV_BASE">
<db-attribute-pair source="ID" target="ID"/>
</db-relationship>