cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matt Watson (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CAY-2242) Vertical Inheritance: Cannot Insert Record With Multiple Flattened Relationships
Date Wed, 22 Feb 2017 01:23:44 GMT
Matt Watson created CAY-2242:
--------------------------------

             Summary: Vertical Inheritance: Cannot Insert Record With Multiple Flattened Relationships
                 Key: CAY-2242
                 URL: https://issues.apache.org/jira/browse/CAY-2242
             Project: Cayenne
          Issue Type: Bug
          Components: Core Library
    Affects Versions: 4.0.M4
            Reporter: Matt Watson


Copied and directly related to issue CAY-2122

When using the following DbEntities:

IV_OTHER (id, name)
IV_BASE (id, type, name)
IV_IMPL (id, attr1, attr2, other1_id, other2_id) (vertically inherits IV_BASE)

all fields are non-null

We end up with ObjEntities:
IvOther
IvBase (abstract)
IvImpl extends IvBase

When running the following code:

{code:java}
IvOther other1 = context.newObject(IvOther.class);
other1.setName("other1");

IvOther other2 = context.newObject(IvOther.class);
other2.setName("other2");

IvImpl impl = context.newObject(IvImpl.class);
impl.setName("Impl 1");
impl.setAttr1("attr1");
impl.setAttr2("attr2");
impl.setOther1(other1);
impl.setOther2(other2);

context.commitChanges();
{code}

Committing this errors in the database, because its trying to insert into the IV_IMPL table
with a NULL value for OTHER2_ID

The original issue (and test) was referring to an Entity that only had 1 flattened relationship.
I recently had to add another relationship to this Entity, and discovered the same bug pops
up again. This time its because the new code does not handle merging the flattenedArcKeys
if more than one exists per ObjectId.

I will upload the breaking test shortly.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message