[ https://issues.apache.org/jira/browse/CAY-2242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15878745#comment-15878745 ]
Matt Watson commented on CAY-2242: ---------------------------------- Thanks for the quick resolution. I had a fix ready that I was going to clean up this morning, but I like your solution better :) > 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 > Assignee: Nikita Timofeev > Labels: inheritance, multiple, relationship, vertical > Fix For: 4.0.M5 > > Attachments: CAY_2242_breaking_test.patch > > > 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)