[
https://issues.apache.org/cayenne/browse/CAY-1009?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12788#action_12788
]
Kevin Menard commented on CAY-1009:
-----------------------------------
Replacing the aforementioned check with
if (target.isSubentityOf((ObjEntity) rel.getTargetEntity()))
seems to take care of the issue. I have some local test failues in the
CAY_207Test, however, that are confounding the issue a little bit.
If the above check does work, we'll probably want to move it down a bit since
it could be a costly operation and is likely to be the exception rather than
the rule.
> Bogus runtime relationships can mess up commit.
> -----------------------------------------------
>
> Key: CAY-1009
> URL: https://issues.apache.org/cayenne/browse/CAY-1009
> Project: Cayenne
> Issue Type: Bug
> Components: Cayenne Core Library
> Affects Versions: 3.0
> Reporter: Kevin Menard
> Assignee: Andrus Adamchik
>
> I'm still the process of investigating this one, so more details to come.
> Basically what I'm seeing is that if two ObjRels map to the same DbRel
> somehow and only one is mapped explicitly, the runtime one can fail
> validation while the specified one passes. I'm observing this in a
> relationship that involves inheritance. It looks like I've explicitly mapped
> an ObjRel for the subclass type and Cayenne is creating one for the base
> class. The DbAttr is marked as required. Since I never specify a value in
> the runtime relationship, since it's not mapped or useful to me, validation
> fails. If I don't mark the attribute as mandatory, everything commits just
> fine. So, I suspect Cayenne resolves the conflict somewhere down the line.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.