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 <and...@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>