You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Matt Watson (JIRA)" <ji...@apache.org> on 2017/02/22 01:23:44 UTC
[jira] [Created] (CAY-2242) Vertical Inheritance: Cannot Insert
Record With Multiple Flattened Relationships
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)